2016-11-30 124 views
3

我无法在iText 7中找到HTMLWorker,ParseXHtml,Document和其他相关类(与iText 5不同)。任何人都可以告诉我如何使用iText 7将HTML文件转换为PDF?iText 7 - HTMLWorker和ParseXHtml丢失

谢谢 Sumanasa

回答

3
  1. HTMLWorker已经很多年前弃用。在iText 5中,你真的应该使用XMLWorker
  2. 目前您无法将HTML转换为PDF格式的iText 7. 尚未。 2017年初,iText Software将发布iText 7的html2pdf-addon。按照iText(阅读博客或在Twitter上关注我们)获取iText 7的html2pdf-addon准备就绪后的情况。
  3. 完全可以同时使用iText 5和iText 7:使用XMLWorker进行HTML转换,使用5进行HTML转换,对于与PDF相关的其他数据使用7。或者继续使用iText 5几个月。
3

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

您正在寻找的主要课程是HtmlConverter。它有很多静态方法过载,用于将html转换为未来添加到布局结构的元素列表,整个com.itextpdf.layout.Document实例或.pdf文件的右侧。转换的HTML布局元素

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

例:转换.html文件.pdf

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