2013-05-30 47 views
2

我有一個報告,其中有2個子報告在詳細band.I想添加在頁腳的分頁參數,但是當我預覽我的報告時,它給了我一個空白頁最後。我在他們的屬性窗口中爲我的子報表塊設置了以下內容。Java:碧玉報告上的空白頁問題

Print Repeated Values檢查

Remove Line When Blank檢查

回答

2

的響應是在這個環節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(); 
    } 
    } 
} 
+4

你應該從你的鏈接作爲編輯添加有用的信息,你的答案。我們不喜歡這裏的鏈接。 –

1

此鏈接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++; 
} 
0

一個簡單的方法來刪除由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的對象層次結構。

  1. 一個JasperPrint有一個或多個JRPrintPage,您可以通過的JasperPrintgetPages()方法得到它。它返回一個列表JRPrintPage。如果您有三個元素,那麼您的打印機將打印3頁。
  2. A JRPrintPage有一個或多個JRPrintElement,每個元素可能是一串文字,圖片或矩形等。您可以動態更改其位置或內容,甚至可以將新的JRPrintElement添加到JRPrintPage中。

鳴謝:http://mattjiang.blogspot.in/2007/05/easy-way-to-remove-blank-page-generated.html