2010-06-24 23 views
1

我有一個JFrame,我希望將它另存爲PDF。 如何使用iText繪製此JFrame?使用iText將Swing組件繪製爲PDF

public PrintFrameToPDF(JFrame bill) { 
    try { 
     Document d = new Document(); 
     PdfWriter writer = PdfWriter.getInstance(d, new FileOutputStream ("sample.pdf")); 

     d.open(); 

     // HOW ? 

     d.close(); 
    } 
    catch(Exception e) { 
     // 
    } 
} 

回答

2

這應該做的伎倆(和它的一般爲JComponent的對象):

public PrintFrameToPDF(JFrame bill) { 
    try { 
     Document d = new Document(); 
     PdfWriter writer = PdfWriter.getInstance(d, new FileOutputStream ("sample.pdf")); 
     d.open(); 

     PdfContentByte cb = writer.getDirectContent(); 
     PdfTemplate template = cb.createTemplate(width, height); 
     Graphics2D g2d = template.createGraphics(width, height); 
     bill.print(g2d); 
     bill.addNotify(); 
     bill.validate(); 
     g2d.dispose(); 

     d.close(); 
    } 
    catch(Exception e) { 
     // 
    } 
} 
+0

我已經過了JDialog的對象isntance這個功能。它在打印模塊中出現異常錯誤文檔沒有頁面。 ExceptionConverter:java.io.IOException:文檔沒有頁面。 at com.itextpdf.text.pdf.PdfPages.writePageTree(PdfPages.java:113) at com.itextpdf.text.pdf.PdfWriter.close(PdfWriter.java:1221) at com.itextpdf.text.pdf。 PdfDocument.close(PdfDocument.java:810) at com.itextpdf.text.Document.close(Document.java:416) – 2013-03-07 15:54:26

+0

這是iText 2.xxx中的一段代碼 – Jes 2013-03-12 12:29:21