Почему и pdfbox, и pdfrenderer не могут поддерживать "Дополнительные шрифты"?
У меня есть PDF, который содержит шрифт "UniCNS-UCS2-H", я пробовал и pdfbox и pdfrenderer, все они выдают исключение: Неизвестная кодировка для "UniCNS-UCS2-H"
и этот шрифт был включен в файл шрифта:mingliu.ttc(это настоящий файл коллекции типов, я не знаю, имеет ли это значение?
Что я могу сделать, чтобы эти две библиотеки поддерживали дополнительные шрифты?
1 ответ
Кодировка шрифта в документах PDF указывается в объекте словаря шрифтов. Шрифт, с которым вы сталкиваетесь, кодируется с помощью UniCNS-UCS2-H, который, насколько я могу судить, является вариантом китайской кодировки.
PDFBox поддерживает только 4 кодировки:
- PDFDocEncoding
- MacRomanEncoding
- StandardEncoding
- WinAnsiEncoding
Они определены в объекте словаря шрифтов внутри потока PDF
(например .../Encoding/WinAnsiEncoding/...
)
Когда PDFBox встречает неизвестную кодировку, отображается исключение, о котором вы сообщили.
Для получения дополнительной информации о шрифтах в документах PDF см. Разделы 9.5–9.8 спецификации PDF.