关于Java:如何使用OpenPdf将HTML转换为Pdf

How to convert HTML to Pdf with OpenPdf

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

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


好吧,看来您无法仅使用OpenPDF直接做到这一点,您必须使用Flying Saucer:先获得flying-saucer-pdf-openpdf,然后再使用它。例如:

1
2
3
4
5
6
7
8
9
10
11
12
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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);
}