我无法在iText 7中找到HTMLWorker,ParseXHtml,Document和其他相关类(与iText 5不同)。任何人都可以告诉我如何使用iText 7将HTML文件转换为PDF?iText 7 - HTMLWorker和ParseXHtml丢失
谢谢 Sumanasa
我无法在iText 7中找到HTMLWorker,ParseXHtml,Document和其他相关类(与iText 5不同)。任何人都可以告诉我如何使用iText 7将HTML文件转换为PDF?iText 7 - HTMLWorker和ParseXHtml丢失
谢谢 Sumanasa
HTMLWorker
已经很多年前弃用。在iText 5中,你真的应该使用XMLWorker
。XMLWorker
进行HTML转换,使用5进行HTML转换,对于与PDF相关的其他数据使用7。或者继续使用iText 5几个月。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);