Почему и pdfbox, и pdfrenderer не могут поддерживать "Дополнительные шрифты"?

У меня есть PDF, который содержит шрифт "UniCNS-UCS2-H", я пробовал и pdfbox и pdfrenderer, все они выдают исключение: Неизвестная кодировка для "UniCNS-UCS2-H"

и этот шрифт был включен в файл шрифта:mingliu.ttc(это настоящий файл коллекции типов, я не знаю, имеет ли это значение?

Что я могу сделать, чтобы эти две библиотеки поддерживали дополнительные шрифты?

1 ответ

Решение

Кодировка шрифта в документах PDF указывается в объекте словаря шрифтов. Шрифт, с которым вы сталкиваетесь, кодируется с помощью UniCNS-UCS2-H, который, насколько я могу судить, является вариантом китайской кодировки.

PDFBox поддерживает только 4 кодировки:

  1. PDFDocEncoding
  2. MacRomanEncoding
  3. StandardEncoding
  4. WinAnsiEncoding

Они определены в объекте словаря шрифтов внутри потока PDF
(например .../Encoding/WinAnsiEncoding/...)

Когда PDFBox встречает неизвестную кодировку, отображается исключение, о котором вы сообщили.

Для получения дополнительной информации о шрифтах в документах PDF см. Разделы 9.5–9.8 спецификации PDF.

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