【问题标题】:How to convert HTML to Pdf with OpenPdf如何使用 OpenPdf 将 HTML 转换为 Pdf
【发布时间】:2018-03-16 16:48:02
【问题描述】:

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

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

【问题讨论】:

  • @AmedeeVanGasse:它由 Itext Software 发布。另请参阅:mvnrepository.com/artifact/com.lowagie/itext/4.2.2
  • iText 4.2.2 是我亲自放在那里的。它是一个重定向 POM,重定向到当时最新的 iText 5 版本。这就是 iText 软件如何重新控制被劫持的 groupId,如上面链接的文章中所述。
  • iText 4.2.0 由 InProTopia 员工 weiyeh 发布。
  • @AmedeeVanGasse 这意味着“Itext 4 不存在”是不正确的。无论如何,你肯定不会帮助我,而且是出于个人原因。

标签: java pdf itext openpdf


【解决方案1】:

好吧,看来你不能直接用OpenPDF,你必须使用Flying Saucer:获取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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-08
    • 2014-09-29
    • 2010-12-29
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多