我正在尝试在Java中使用iText 7。想要将HTML/XHTML转换为PDF。
显然,iText 7 core中并不存在xmlworker.jar。
iText 7的替代品是什么?
有什么解决方案吗?
发布于 2016-06-24 14:06:03
XML Worker是iText路线图上的下一件事,所以是的,它将可用于iText 7。但首先我们需要完成从iText 7到iText 7到C#的移植,我们仍在努力编写iText 7的文档。例如,请参阅:iText 7: Building Blocks。
在开源中,一个人经常发布,一个人很快就会发布。我们选择了开源的发布方式,而不是在一切完成之前关闭所有代码:任何准备好的东西都会发布。任何还没有准备好的东西,一旦准备好就会发布。
iText的重大变革要求我们重写XML Worker。好处:XML7在编写时就考虑到了iText Worker。我在教程中提到的所有用键标记的项目都是“iText 7中的新功能”,例如继承属性(这让我们可以更好地应用CSS )。
当它完成时,您将看到显著的改进。
发布于 2017-02-22 02:25:31
iText pdfHTML模块已作为XmlWorker的替代模块发布。可以从NuGet Gallery下载C#版本。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);或者,您可以使用DefaultFontProvider并在构造函数中指定其设置:
FontProvider fontProvider = new DefaultFontProvider(false, false, true);
properties.setFontProvider(fontProvider);DefaultFontProvider在构造函数中有三个参数:第一个参数用于指定是否使用标准字体(Helvetica、Courier、Times等),第二个参数用于指定是否使用pdfHTML附带的字体,第三个参数用于指定是否加载系统字体。DefaultFontProvider只是FontProvider的一个子类,因此您可以在创建实例后随时调用addDirectory或addFont。
https://stackoverflow.com/questions/37587868
复制相似问题