如何使用iText将Swing组件绘制为PDF文件?

时间:2009-01-08 19:42:03

标签: java swing pdf pdf-generation itext

我想通过iText将我的Swing JComponent打印到pdf。

JComponent com = new JPanel();
com.add( new JLabel("hello") );

PdfWriter writer = PdfWriter.getInstance( document, new FileOutputStream( dFile ) );
document.open( );

PdfContentByte cb = writer.getDirectContent( );
PdfTemplate tp = cb.createTemplate( pageImageableWidth, pageImageableHeight );
Graphics2D g2d = tp.createGraphics( pageImageableWidth, pageImageableHeight, new DefaultFontMapper( ) );
g2d.translate( pf.getImageableX( ), pf.getImageableY( ) );
g2d.scale( 0.4d, 0.4d );
com.paint( g2d );
cb.addTemplate( tp, 25, 200 );
g2d.dispose( );

不幸的是,PDF文件中没有显示任何内容。 你知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

我已经想出添加addNotify并验证帮助。

    com.addNotify( );
    com.validate( );

答案 1 :(得分:2)

我需要致电

com.addNotify()
com.setSize()
com.validate()

答案 2 :(得分:1)

我对iText了解不多,但是......你确实在某个时候关闭了PdfWriter,对吗?