Как использовать функции opentype в itext 7? - PullRequest
0 голосов
/ 30 сентября 2018

Я использую fontlab studio, я создаю в ней лигатуры с помощью OpenType, возможно ли использовать лигатуры в itext 7?

1 Ответ

0 голосов
/ 30 сентября 2018

Можно применять функции OpenType к тексту, написанному с помощью iText7, включая лигатуры, но для этого требуется pdfCalligraph - дополнение iText7.

См. Также этот ответ Диакритические символы iText, такие как D̂, M̂ и т. Д., Неправильно отображаются в PDF и, в частности, следующий абзац:

Для получения дополнительной информации о pdfCalligraph , см. Главу 2 руководства "iText 7: строительные блоки" (пожалуйста, прокрутите до конца главы), чтобы узнать, как это работает.Вы можете получить бесплатную пробную версию pdfCalligraph здесь .

Если у вас есть pdfCalligraph, вам придется явно включить лигатуры, поскольку они считаются дополнительной функцией.В качестве примера вы можете использовать следующий фрагмент кода:

PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outFileName));
Document document = new Document(pdfDocument);
PdfFont font = PdfFontFactory.createFont(FONT_PATH, PdfEncodings.IDENTITY_H);
document.setProperty(Property.FONT, font);

String text1 = "Testing ligatures feature in layout (off): Fff akt ikto!";
Paragraph p = new Paragraph(text1);
document.add(p);

String text2 = "Testing ligatures feature in layout (on): Fff akt ikto!\nAnd also kerning: AWAWAWA";
Paragraph pLiga = new Paragraph(text2);
pLiga.setProperty(Property.TYPOGRAPHY_CONFIG, new TypographyConfigurator()
        .addFeatureConfig(
                new LatinScriptConfig()
                        .setLigaturesApplying(true)
                        .setKerningFeature(true)
        ));
document.add(pLiga);

document.close(); 

Пример вывода: Image showing effect of applying opentype features via pdfCalligraph

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...