iText7 - Как я могу показать текст, закодированный с помощью API низкого уровня (PdfCanvas) модуля iText7 и pdfCalligraph?

В iText5 есть класс PdfContentByte с методами showText(String) а также showTextKerned(String) показывать текст без и с кернингом. В iText7 класс PdfCanvas, который, кажется, соответствует классу PdfContentByte, не имеет showTextKerned(String) метод.

Есть ли другой способ показать текст, закрученный в iText7, используя API низкого уровня?

1 ответ

Пожалуйста, перейдите к главе 2 учебного пособия по строительным блокам и прокрутите до конца этой главы.

Вы найдете следующую запись FAQ:

Я попытался использовать кернинг / поддержку арабского языка, индийских языков / лигатур, но это не работает. Почему бы и нет?

showTextAlignedKerned() Метод не будет иметь никакого эффекта, если в вашем CLASSPATH нет типографской банки. Если типографская банка отсутствует, не будет разницы между обычным текстом и текстом с кернингом. Если вы хотите отобразить хинди или арабский язык, текст будет отображаться неправильно без типографской фляги. Лигатуры не будут сделаны, если вы не добавите типографский кувшин в свой CLASSPATH.

Таким образом, ответ на ваш вопрос: вы можете добавить керниновый текст в абсолютную позицию, используя showTextAlignedKerned() метод в iText 7, однако для работы этого метода требуется дополнение pdfCalligraph.

Вычисление кернинга, лигатур и т. Д. Требует больше ресурсов процессора, чем написание контента без кернинга, лигатур и т. Д., Поэтому мы разделили функциональность таким образом, чтобы это не делали другие пользователи, которым не нужны кернинг, лигатуры и т. Д. не замедлился Эти пользователи не нуждаются в надстройке, что также означает, что им нужно меньше мегабайт jar или DLL.

Кроме того, мы сделали надстройку pdfCalligraph с закрытым исходным кодом, поскольку натолкнулись на несколько компаний, которые использовали AGPL-версию iText в среде с закрытым исходным кодом без оплаты лицензии. Мы успешно подали в суд на некоторые из этих компаний (например, в Германии), но некоторые компании были вне досягаемости нашей юридической силы (например, в странах с языками, которые нуждаются в лигатурах). Благодаря этим компаниям мы решили оставить надстройку pdfCalligraph закрытым. Финансовые вложения, направленные на поддержку таких языков, как хинди, тамильский, телугу, каннада,... были слишком велики, чтобы просто позволить этим компаниям проскользнуть. Это решение было принято в интересах разработчиков, которым платят зарплату за их работу на iText. Я уверен, что каждый разработчик, который делает живой написание кода, может понять эту точку зрения. Если нет, то, по моему мнению, такие разработчики должны вернуть свою зарплату своему работодателю.

Другие вопросы по тегам