我正在使用 FlyingSaucer 从 HTML 创建 PDF。它运行良好,但我想将另一个 PDF 附件作为单独的页面(或多个页面)附加(合并)到其中。 附件将是 PDF。
我现有的代码:
org.xhtmlrenderer.pdf.ITextRenderer render = new org.xhtmlrenderer.pdf.ITextRenderer();
render.setDocumentFromString("<!--?xml version='1.0' encoding='utf-8'?--><html><body>Some text</body></html>");
render.layout();
ByteArrayOutputStream out = new ByteArrayOutputStream();
render.createPDF(out);
附件应位于新的 PDF 页面上。
查看 Flying Saucer 的示例,似乎我应该能够做这样的事情:
final File outputFile = File.createTempFile("FlyingSaucer.PDFRenderToMultiplePages", ".pdf");
try (OutputStream os = newOutputStream(outputFile.toPath())) {
ITextRenderer renderer = new ITextRenderer();
// we need to create the target PDF
// we'll create a page with HTML input string
renderer.setDocumentFromString(htmlStr);
renderer.layout();
renderer.createPDF(os, false);
// now append the existing PDF
renderer.setDocument...? // how to read and add the PDF file here
renderer.layout();
renderer.writeNextDocument();
}
// complete the PDF
renderer.finishPDF();
在 FlyingSaucer 的 Github 存储库的示例文件夹中,有一个针对此用例的 Flying Saucer 示例。
参见: