首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iText 7核心中缺少xmlworker

iText 7核心中缺少xmlworker
EN

Stack Overflow用户
提问于 2016-06-02 17:30:14
回答 2查看 3.5K关注 0票数 6

我正在尝试在Java中使用iText 7。想要将HTML/XHTML转换为PDF。

显然,iText 7 core中并不存在xmlworker.jar

iText 7的替代品是什么?

有什么解决方案吗?

EN

回答 2

Stack Overflow用户

发布于 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 )。

当它完成时,您将看到显著的改进。

票数 5
EN

Stack Overflow用户

发布于 2017-02-22 02:25:31

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

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

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

代码语言:javascript
复制
HtmlConverter.convertToPdf(new File(htmlFilePath), new File(outPdfFilePath));

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

代码语言:javascript
复制
String html = "<p>Hello world!</p>";
List<IElement> lst = HtmlConverter.convertToElements(html);

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

代码语言:javascript
复制
ConverterProperties properties = new ConverterProperties()
     .setMediaDeviceDescription(new MediaDeviceDescription(MediaType.PRINT));
HtmlConverter.convertToPdf(new File(htmlPath), new File(outPdfPath), properties);

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

代码语言:javascript
复制
FontProvider fontProvider = new FontProvider();
fontProvider.addDirectory(fontsDir)
properties.setFontProvider(fontProvider);

或者,您可以使用DefaultFontProvider并在构造函数中指定其设置:

代码语言:javascript
复制
FontProvider fontProvider = new DefaultFontProvider(false, false, true);
properties.setFontProvider(fontProvider);

DefaultFontProvider在构造函数中有三个参数:第一个参数用于指定是否使用标准字体(HelveticaCourierTimes等),第二个参数用于指定是否使用pdfHTML附带的字体,第三个参数用于指定是否加载系统字体。DefaultFontProvider只是FontProvider的一个子类,因此您可以在创建实例后随时调用addDirectoryaddFont

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37587868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档