почему и pdfbox, и pdfrenderer не могут поддерживать “Дополнительные шрифты”?
-
23-09-2019 - |
Вопрос
У меня есть PDF-файл, содержащий шрифт 'UniCNS-UCS2-H', Я пробовал как pdfbox, так и pdfrenderer, все они выдают исключение:Неизвестная кодировка для 'UniCNS-UCS2-H'
и этот шрифт был включен в файл шрифтов: mingliu.ttc (это файл коллекции true type, я не знаю, имеет ли это значение?
что я могу сделать, чтобы эти две библиотеки поддерживали дополнительные шрифты?
Решение
Кодировка шрифта в PDF-документах указывается в объекте font dictionary (словарь шрифтов).Шрифт, с которым вы сталкиваетесь, закодирован с использованием 'UniCNS-UCS2-H', который, насколько я могу судить, является вариантом китайской кодировки.
PDFBox поддерживает только 4 кодировки:
- pdfдокодирование
- Макроманенкодирование
- Стандартное кодирование
- WinAnsiEncoding - кодирование
Они определены в объекте словаря шрифтов внутри потока pdf
(например, .../Encoding/WinAnsiEncoding/...
)
Когда PDFBox обнаруживает неизвестную кодировку, отображается исключение, о котором вы сообщили.
Дополнительные сведения о шрифтах в PDF-документах см. в разделах 9.5 - 9.8 руководства. Спецификация в формате PDF