如何使用 OpenPdf 将 HTML 转换为 Pdf
How to convert HTML to Pdf with OpenPdf
如何使用 OpenPDF 将 HTML 转换为 PDF?
据我所知,OpenPdf 是 Itext 4 的一个分支。不幸的是我找不到 Itext 4 文档。
好吧,看来只用OpenPDF是不行的,得用Flying Saucer: get flying-saucer-pdf-openpdf再用。一个例子:
String inputFile = "my.xhtml";
String outputFile = "generated.pdf";
String url = new File(inputFile).toURI().toURL().toString();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
try (OutputStream os = Files.newOutputStream(Paths.get(outputFile))) {
renderer.createPDF(os);
}
PS:FlyingSaucer 需要 XHTML 语法。如果你的 HTML 文件有问题,你可以使用 Jsoup:
String inputFile = "my.html";
String outputFile = "generated.pdf";
String html = new String(Files.readAllBytes(Paths.get(inputFile)));
final Document document = Jsoup.parse(html);
document.outputSettings().syntax(Document.OutputSettings.Syntax.xml);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(document.html());
renderer.layout();
try (OutputStream os = Files.newOutputStream(Paths.get(outputFile))) {
renderer.createPDF(os);
}
如何使用 OpenPDF 将 HTML 转换为 PDF?
据我所知,OpenPdf 是 Itext 4 的一个分支。不幸的是我找不到 Itext 4 文档。
好吧,看来只用OpenPDF是不行的,得用Flying Saucer: get flying-saucer-pdf-openpdf再用。一个例子:
String inputFile = "my.xhtml";
String outputFile = "generated.pdf";
String url = new File(inputFile).toURI().toURL().toString();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
try (OutputStream os = Files.newOutputStream(Paths.get(outputFile))) {
renderer.createPDF(os);
}
PS:FlyingSaucer 需要 XHTML 语法。如果你的 HTML 文件有问题,你可以使用 Jsoup:
String inputFile = "my.html";
String outputFile = "generated.pdf";
String html = new String(Files.readAllBytes(Paths.get(inputFile)));
final Document document = Jsoup.parse(html);
document.outputSettings().syntax(Document.OutputSettings.Syntax.xml);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(document.html());
renderer.layout();
try (OutputStream os = Files.newOutputStream(Paths.get(outputFile))) {
renderer.createPDF(os);
}