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

Java 如何使用OpenPdf将HTML转换为Pdf,java,pdf,itext,openpdf,Java,Pdf,Itext,Openpdf,如何使用将HTML转换为PDF 据我所知,OpenPdf是iText4的一个分支。不幸的是,我找不到Itext 4文档。好的,似乎你不能直接使用OpenPDF,你必须使用:获取然后使用它。例如: String inputFile = "my.xhtml"; String outputFile = "generated.pdf"; String url = new File(inputFile).toURI().toURL().toString(); ITextRenderer rendere

如何使用将HTML转换为PDF


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

好的,似乎你不能直接使用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文件有问题,可以使用:


@阿梅迪万加斯:这个怎么样@AmedeeVanGasse:它是由Itext软件发布的。另请参见:iText 4.2.2是我个人提出的。它是一个重定向POM,重定向到当时最新的iText 5版本。这就是iText软件如何重新控制被劫持的groupId,如上面链接的文章所述。iText 4.2.0是由InProTopia的雇员weiyeh发布的。@AmedeeVanGasse,这意味着“iText 4不存在”不是真的。不管怎样,你肯定没有帮我,而且是出于个人原因。
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);
}