gpt4 book ai didi

java - iText 将组件 Swing 到多个页面

转载 作者:行者123 更新时间:2023-12-01 18:38:26 36 4
gpt4 key购买 nike

我有一个 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 方法)并将它们放置在单独的页面上。

关于java - iText 将组件 Swing 到多个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20849715/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com