作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的面板高度是1600。A4格式的高度是842。如何将此面板导出为两页的pdf?或者我如何将此面板分成两半为两个图形,然后添加到第一页,然后调用 document.newPage();
并将第二个图形添加到第二页
最佳答案
简而言之,假设您计划使用 iText,
您需要实现 java.awt.print.Pageable,就像普通的 Java 打印一样。在您的示例中,它将有 2 页,将是可打印的。通常,在 Printable 方法中
print(Graphics graphics, PageFormat pageFormat, int pageIndex)
您将根据页码翻译传入的图形。例如在您的示例中按 pageIndex*842 进行翻译。那里可能有一个减号 - 根据我的经验,你有 50:50 的机会找到正确的方向。 :-) 可能还需要担心利润。
然后,购买《iText in Action》(第 2 版)一书,并查看第 485 页,了解如何从 Swing 创建常规 PDF。
循环每一页。
for (int pageIndex=0; pageIndex< pageable.getNumberOfPages(); pageIndex++) {
Graphics2D g2d = contentByte.createGraphics(width, height, fontMapper);
Printable printable = pageable.getPrintable(pageIndex);
PageFormat pageFormat = pageable.getPageFormat(pageIndex);
int pageStatus = printable.print(g2d, pageFormat, pageIndex);
if (pageStatus != Printable.PAGE_EXISTS)
break; // something screwey happenned
g2d.dispose();
}
正如您可能已经猜到的,我刚刚一直在这样做,并且可能会在几天内发布包含更完整代码的博客。所以请继续关注。
关于java - 如何将 JPanel 高级转换为pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372751/
我是一名优秀的程序员,十分优秀!