Как написать арабский текст в PDF с помощью OpenPDF и Java

Я использую OpenPDF для создания PDF-файла из приложения Spring Boot. Все работает нормально, когда я использую французский или английский алфавит, но когда я пишу на арабском языке, ничего не отображается.

Я читал, что я должен использовать форму Unicode для арабских слов. Например, арабское слово الاسم, преобразованное в форму Unicode, дает следующую строку:

\u0627\u0644\u0627\u0633\u0645

Поэтому мне интересно, есть ли способ преобразовать арабские слова в Unicode на Java, и могу ли я использовать этот подход с OpenPDF? Или есть альтернативный способ написать арабский в PDF с помощью OpenPDF и Java 17/Spring Boot?

Как сделать движок для футбольного матча? (простой вариант)
Как сделать движок для футбольного матча? (простой вариант)
Футбол. Для многих людей, живущих на земле, эта игра - больше, чем просто спорт. И эти люди всегда мечтают стать футболистом или менеджером. Но, к...
Знайте свои исключения!
Знайте свои исключения!
В Java исключение - это событие, возникающее во время выполнения программы, которое нарушает нормальный ход выполнения инструкций программы. Когда...
Лучшая компания по разработке спортивных приложений
Лучшая компания по разработке спортивных приложений
Ищете лучшую компанию по разработке спортивных приложений? Этот список, несомненно, облегчит вашу работу!
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Что такое Java 8 Streams API? Java 8 Stream API
Деревья поиска (Алгоритм4 Заметки к учебнику)
Деревья поиска (Алгоритм4 Заметки к учебнику)
(1) Двоичные деревья поиска: среднее lgN, наихудшее N для вставки и поиска.
1
0
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Этот пример записи арабского текста в PDF с использованием OpenPDF решает мою проблему. (RightToLeft.java в документации OpenPDF.)

Основная идея состоит в том, чтобы создать BaseFont, который поддерживает арабский текст, как показано в строке 51:

BaseFont bf = BaseFont.createFont("c:\\windows\\fonts\\times.ttf", BaseFont.IDENTITY_H, true);

Вы можете заменить этот файл .ttf, поддерживающий арабский текст, своим собственным файлом. Вы помещаете его в папку ресурсов и называете так: src/main/resources/youTtfFile.ttf.

Вам также необходимо указать направление справа налево (RTL), как показано в строке 61:

ct.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);

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