我有一個報告,其中有2個子報告在詳細band.I想添加在頁腳的分頁參數,但是當我預覽我的報告時,它給了我一個空白頁最後。我在他們的屬性窗口中爲我的子報表塊設置了以下內容。Java:碧玉報告上的空白頁問題
Print Repeated Values
檢查
Remove Line When Blank
檢查
我有一個報告,其中有2個子報告在詳細band.I想添加在頁腳的分頁參數,但是當我預覽我的報告時,它給了我一個空白頁最後。我在他們的屬性窗口中爲我的子報表塊設置了以下內容。Java:碧玉報告上的空白頁問題
Print Repeated Values
檢查
Remove Line When Blank
檢查
的響應是在這個環節http://mattjiang.blogspot.com/2007/05/easy-way-to-remove-blank-page-generated.html
private void removeBlankPage(List<JRPrintPage> pages) {
for (Iterator<JRPrintPage> i = pages.iterator(); i.hasNext();) {
JRPrintPage page = i.next();
if (page.getElements().size() == 0) {
i.remove();
}
}
}
此鏈接http://mattjiang.blogspot.com/2007/05/easy-way-to-remove-blank-page-generated.html的使用,我可以通過生成的碧玉導航,我發現「垃圾元素「:
int actualPage = 1;
for (Iterator<JRPrintPage> i=jasperPrint.getPages().iterator(); i.hasNext();) {
JRPrintPage page = i.next();
System.out.println(String.format("Page: %s, size: %s", actualPage, page.getElements().size()));
for (Object element : page.getElements()) {
System.out.println("Element: " + element);
if (element instanceof JRTemplatePrintRectangle) {
JRTemplatePrintRectangle rectangle = (JRTemplatePrintRectangle) element;
System.out.println(String.format("Rectangle: Key: %s", rectangle.getKey()));
}
}
actualPage++;
}
一個簡單的方法來刪除由JasperReports生成的空白頁面。
如果您的JasperReports報告有另外一個子報告並且它生成爲PDF文件。在某些情況下,可能會在PDF文件中找到空白頁面。這是我的解決方案,可以輕鬆刪除它。
private void removeBlankPage(List<JRPrintPage> pages) {
for (Iterator<JRPrintPage> i=pages.iterator(); i.hasNext();) {
JRPrintPage page = i.next();
if (page.getElements().size() == 0)
i.remove();
}
}
在將JasperPrint實例刷新爲PDF之前,應該調用此方法。
跟着示例代碼,最好知道JasperPrint的對象層次結構。
JRPrintPage
,您可以通過的JasperPrint
getPages()
方法得到它。它返回一個列表JRPrintPage
。如果您有三個元素,那麼您的打印機將打印3頁。JRPrintPage
有一個或多個JRPrintElement
,每個元素可能是一串文字,圖片或矩形等。您可以動態更改其位置或內容,甚至可以將新的JRPrintElement
添加到JRPrintPage
中。鳴謝:http://mattjiang.blogspot.in/2007/05/easy-way-to-remove-blank-page-generated.html
你應該從你的鏈接作爲編輯添加有用的信息,你的答案。我們不喜歡這裏的鏈接。 –