对于复杂的脚本(在我的情况下为Tibt),我需要能够指定PdfFont应该使用的一些OpenType功能(请参阅here以获取与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虽然看起来像:
有没有办法指定要使用的OpenType功能列表?
答案 0 :(得分:1)
您使用的是附加组件pdfCalligraph吗? https://itextpdf.com/itext7/pdfcalligraph
如果是,那么您是具有支持合同的iText客户,我建议您直接联系iText软件。
如果不是:您需要pdfCalligraph来使用像Tibt这样的复杂书写系统的OpenType功能。请参阅链接网站上的扩展示例。 因为我没有看到你在代码中加载许可证密钥,所以我认为是这种情况。
如果pdfCalligraph尚不支持您的特定语言,我们会尽快添加。但是从我的头脑中我认为大多数印度语都是支持的。您可以在https://pages.itextpdf.com/itext-7-free-trial-landing-page-1.html
申请30天免费试用许可完全披露:我是iText Software的QA工程师。