【问题标题】:iText 7 - HTMLWorker and ParseXHtml missingiText 7 - 缺少 HTMLWorker 和 ParseXHtml
【发布时间】:2017-04-15 10:10:01
【问题描述】:

我在 iText 7 中找不到 HTMLWorker、ParseXHtml、Document 和其他相关类(与 iText 5 不同)。谁能告诉我如何使用 iText 7 将 HTML 文件转换为 PDF?

谢谢你, 苏门萨

【问题讨论】:

    标签: itext itext7


    【解决方案1】:
    1. HTMLWorker 多年前已被弃用。在 iText 5 中,你真的应该,真的使用XMLWorker。 iText 5 已停产(仅安全更新,无附加功能),因此请迁移到 iText 7。
    2. 对于 iText 7,请使用附加组件 pdfHTML。请参阅下面 Alexey 的回答。

    【讨论】:

      【解决方案2】:

      iText pdfHTML 模块已作为XmlWorker 的替代品发布。 C#版本可以从NuGet Gallery下载。 Java版可以从Artifactory下载。

      您要查找的主要类是HtmlConverter。它有很多静态方法重载,用于将html 转换为将来要添加到布局结构中的元素列表、整个com.itextpdf.layout.Document 实例或.pdf 文件的权限。

      .html文件转换为.pdf的示例:

      HtmlConverter.convertToPdf(new File(htmlFilePath), new File(outPdfFilePath));
      

      将html转换为布局元素的示例:

      String html = "<p>Hello world!</p>";
      List<IElement> lst = HtmlConverter.convertToElements(html);
      

      另外,pdfHTML 现在支持@media 规则,因此您可能需要提供一个用于应用 CSS 的配置,例如使用@media print 指令,您需要相应地设置MediaDeviceDescription

      ConverterProperties properties = new ConverterProperties()
           .setMediaDeviceDescription(new MediaDeviceDescription(MediaType.PRINT));
      HtmlConverter.convertToPdf(new File(htmlPath), new File(outPdfPath), properties);
      

      要指定在将 HTML 转换为 PDF 时要使用的字体集,您还可以设置 FontProvider

      FontProvider fontProvider = new FontProvider();
      fontProvider.addDirectory(fontsDir)
      properties.setFontProvider(fontProvider);
      

      【讨论】:

        【解决方案3】:

        据 iText Group 的创始人称,HTMLWorker 在很久以前就已被弃用,其目的不是转换完整的 HTML 页面。它基本上不知道网页由&lt;head&gt;&lt;body&gt; 部分组成。

        XMLWorker 是一个用于解析 XML 的通用框架。为了避免这些冲突,iText 7 使用了convertToPdf 函数,该函数能够将 HTML 转换为 PDF。

        下面是代码 sn-p。

        HtmlConverter.convertToPdf(new File(src), new File(dest));
        

        将您的 HTML 编码或.html 文件添加到第一个参数中,并提供文件位置以将 HTML 保存到提供的位置(文件路径)中的 PDF 中。

        【讨论】:

          猜你喜欢
          • 2016-10-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-27
          • 1970-01-01
          相关资源
          最近更新 更多