我有一个 jpanel,它有一个相当大的高度,我想将其绘制成 pdf,大约 2-3 页,有时甚至更多。
我的问题是,它不会传递到下一页,它只会尝试将所有内容插入第一页,当页面结束时,它不会传递到下一页。
我搜索了一下,尝试了我能想到的一切,但一无所获。
我该怎么做,我怎样才能告诉 iText 它需要开始一个新页面并继续那里的 jpanel ?
这是我的代码:
try {
Document document = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\\HelloWorld.pdf"));
document.open();
jPanel1.addNotify();
jPanel1.validate();
PdfContentByte cb = writer.getDirectContent();
PdfTemplate tp = cb.createTemplate(600, 840);
Graphics2D g2d = tp.createGraphics(595, 840);
g2d.translate(4, 4);
g2d.scale(0.708, 0.8);
jPanel1.paint(g2d);
cb.addTemplate(tp, 0, 0);
g2d.dispose();
document.close();
} catch (DocumentException ex) {
} catch (FileNotFoundException ex) {
}
您使用JPanel
仅用于创建图形(用于绘制g2d
),这与你的问题本身无关。
由于图像没有“自然”换行边界(如单词或段落),因此您需要自己执行此操作。分割图像,即在有用的边界处手动创建多个图像(根据内容,可能您需要调整paint
方法)并将它们放在不同的页面上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)