iText7:如何指定 PdfFont 使用的 OpenType 功能?

埃利·鲁

对于复杂的脚本(在我的例子中是 Tibt),我需要能够指定 PdfFont 应该使用的一些 OpenType 功能(有关与 Tibt 一起使用的功能,请参见此处)。我找不到任何方法来指定 iText,并且使用默认功能,结果不好。

例子:

public static void main(String args[]) throws IOException {
    final String notoPath = "/usr/share/fonts/truetype/noto/NotoSansTibetan-Regular.ttf";
    final PdfWriter writer = new PdfWriter("tibttest.pdf");
    final PdfDocument pdfDoc = new PdfDocument(writer);
    final Document doc = new Document(pdfDoc);
    PdfFont f = PdfFontFactory.createFont(notoPath, PdfEncodings.IDENTITY_H, true);
    doc.add(new Paragraph("༄༅། །སྒྲུབ།").setFont(f));
    doc.close();
}

生成的 PDF 如下所示:

Nok 结果

虽然它应该看起来像:

预期结果

有没有办法指定要使用的 OpenType 功能列表?

阿梅迪·范加斯

您在使用附加的 pdfCalligraph 吗?https://itextpdf.com/itext7/pdfcalligraph

如果是,那么您是拥有支持合同的 iText 客户,我建议您直接联系 iText Software。

如果不是:您需要 pdfCalligraph 才能使用 Tibt 等复杂书写系统的 OpenType 功能。请参阅链接网站上的扩展示例。因为我没有看到您在代码中加载许可证密钥,所以我认为是这种情况。

如果 pdfCalligraph 尚不支持您的特定语言,我们将确保尽快添加它。但在我看来,我认为大多数印度语言都受支持。您可以在https://pages.itextpdf.com/itext-7-free-trial-landing-page-1.html申请 30 天免费试用许可证

完全披露:我是 iText Software 的 QA 工程师。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在IText7中创建PdfFont

来自分类Dev

在Java / Clojure中生成包含使用OpenType功能的文本的图像

来自分类Dev

在iText中访问OpenType字形变体

来自分类Dev

Qt 4.8支持哪些OpenType GSUB功能?

来自分类Dev

使用itext7的addind文本

来自分类Dev

如何使用iText7将.p7s字节数组插入PDF?

来自分类Dev

如何使用iText7在C#中从MemoryStream创建Image对象?

来自分类Dev

如何使用itext7从标记的pdf中的结构元素中提取文本

来自分类Dev

我如何使用itext7从存储在Blob存储中的pdf中提取文本?

来自分类Dev

由于缺少FontKey和PdfFont,如何将3.x代码升级到6.3.0

来自分类Dev

使用数据URI的Base64编码的OpenType字体

来自分类Dev

如何使用全部功能

来自分类Dev

如何使用通话功能?

来自分类Dev

如何使用加载功能?

来自分类Dev

如何使用这种功能?

来自分类Dev

如何使用mod功能?

来自分类Dev

如何使用减少功能代替重复功能?

来自分类Dev

如何使用不同功能输出功能?

来自分类Dev

如何使用 IText7 和 C# 在现有 PDF 中的内部链接下划线?

来自分类Dev

如何使用代码重复功能?

来自分类Dev

QML:如何使用日期功能

来自分类Dev

如何使用dtrace跟踪功能?

来自分类Dev

如何使用begin()免费功能

来自分类Dev

如何使用lodash链接功能?

来自分类Dev

如何使用Dart扩展功能?

来自分类Dev

如何正确使用未来功能

来自分类Dev

如何正确使用按键功能?

来自分类Dev

承诺如何改变功能的使用

来自分类Dev

如何使用IF功能1次?