如何使用OpenPdf将HTML转换为Pdf

时间:2018-03-16 16:48:02

标签: java pdf openpdf

如何使用OpenPDF将HTML转换为PDF?

据我所知,OpenPdf是Itext 4的分支。不幸的是,我无法找到Itext 4文档。

1 个答案:

答案 0 :(得分:6)

好的,似乎你不能只用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);
}

Source

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);
}