首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iText7 -如何使用iText7和pdfCalligraph模块的低级接口(PdfCanvas)显示紧排文本?

iText7 -如何使用iText7和pdfCalligraph模块的低级接口(PdfCanvas)显示紧排文本?
EN

Stack Overflow用户
提问于 2017-11-30 23:30:07
回答 1查看 191关注 0票数 0

在iText5中有一个类PdfContentByte,它使用showText(String)showTextKerned(String)方法来显示不带字距调整和有字距调整的文本。在iText7中,类PdfCanvas似乎是PdfContentByte的对应类,但它没有showTextKerned(String)方法。

有没有其他方法可以使用低级应用编程接口在iText7中显示紧排文本?

EN

回答 1

Stack Overflow用户

发布于 2017-12-01 01:13:44

请转到构建块教程的Chapter 2,并滚动到该章的底部。

您将找到以下常见问题解答条目:

我尝试过使用字距调整/支持阿拉伯语、印度语/连字,但不起作用。为什么不行?

如果您的CLASSPATH中没有排版jar,showTextAlignedKerned()方法将不会有任何效果。如果缺少排版jar,则正常文本和字距调整文本之间将没有区别。如果要呈现印地语或阿拉伯语,如果没有排版jar,文本将无法正确呈现。除非您将排版jar添加到您的CLASSPATH中,否则不会生成连字。

因此,您的问题的答案是:您可以使用iText 7中的showTextAlignedKerned()方法在绝对位置添加字距调整文本,但是需要使用pdfCalligraph add-on才能使用该方法。

计算字距调整、连字等。与不使用字距调整、连字等编写内容相比,需要更多的CPU。因此,我们以一种方式分离了功能,以便其他不需要字距调整、连字等的用户……都不会慢下来。这些用户不需要附加组件,这也意味着他们需要更少的jars或DLL的MBytes。

此外,我们之所以让pdfCalligraph附加组件闭源,是因为我们遇到了几家公司,他们在闭源环境中使用iText的AGPL版本,而没有支付许可证。我们已经成功地起诉了其中一些公司(例如在德国),但有些公司超出了我们的法律权力范围(例如在具有需要连字的语言的国家)。由于这些公司,我们决定保持pdfCalligraph附加组件的封闭源代码。为支持印地语、泰米尔语、泰卢固语、卡纳达语等语言所作的财政投资……太高了,不能让这些公司一败涂地。这一决定是为了开发人员的利益,他们在iText上的工作是有报酬的。我相信每一个以编写代码为生的开发人员都能理解这种观点。如果没有,我认为这些发展商应该把薪金退还给他们的雇主。

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

https://stackoverflow.com/questions/47577003

复制
相关文章

相似问题

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