2017-03-09 87 views
-1

我正在使用java的itext pdf API,jpanel包含27行文本,但每次我只轉換爲pdf時,我只需要24行,請如何確保每行都添加到pdf頁面。下面是我的代碼itext不顯示所有行

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\\Users\\CHRISGEEK\\Documents\\test.pdf")); 
    Rectangle two = new Rectangle(1000,500); 
    document.setPageSize(two); 
    document.setMargins(0, 0, 0, 0); 

    document.open(); 
    PdfContentByte contentByte = writer.getDirectContent(); 
    PdfTemplate template = contentByte.createTemplate(500, 500); 
    Graphics2D g2 = new PdfGraphics2D(contentByte, 500, 500); 
    answer_panel.print(g2); 
    g2.dispose(); 
    contentByte.addTemplate(template, 30, 300); 
    writer.setPageEmpty(false); 
    document.newPage(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
finally{ 
    if(document.isOpen()){ 
     document.close(); 
    } 

回答

0

PdfGraphics2D不會創建新的頁面,它都將問世在同一個頁面,可能有些OT它viweing區域之外。如果內容太大,您必須在調用之前自行分割。

+0

好吧,但我在調用之前究竟如何分割?內容實際上大約2500行@Paulo – chrisgeeq

+0

@chrisgeeq您可以創建一個足夠大的模板並將所有JPanel內容繪製到該模板。然後,使用不同的偏移量將此單個模板添加到不同的pdf頁面,從而在單獨的頁面上顯示模板的不同部分。有關細節參見[這個答案](http://stackoverflow.com/a/20851964/1729265)。 – mkl