Доступ к файлам шрифтов в PDF - PullRequest
6 голосов
/ 06 января 2012

В настоящее время мы работаем с некоторыми издателями, чтобы создавать онлайн-книги из своих PDF-файлов. Наше устаревшее приложение использует flex, поэтому для этого мы конвертируем PDF в SWF-файлы, используя PDF2SWF на SWFTools .

Проблема, с которой мы сталкиваемся, заключается в том, что наш Flex-ридер не выделяет текст в документе SWF, когда пользователь выполняет поиск. После быстрого исследования мы обнаружили, что при извлечении текста нам нужно встраивать шрифты, которые используются в документе PDF:

http://wiki.swftools.org/wiki/How_do_I_highlight_text_in_the_SWF%3F

pdf2swf -F $YOUR_FONTS_DIR$ -f input.pdf -o output.swf

Как видно из приведенного выше кода, нам нужен путь к каталогу шрифтов, содержащему шрифты, найденные в этом PDF.

Поскольку мы будем конвертировать большое количество PDF-файлов, возможно ли получить доступ к файлам шрифтов непосредственно через PDF-файл, а не хранить много шрифтов в нашем приложении?

Дополнительная информация

Наше приложение написано на Java.

В настоящее время в приложении мы используем PDFBox и Ghostscript, поэтому, если какие-либо решения используют эти библиотеки, это предпочтительный вариант, но мы открыты для любых идей.

1 Ответ

7 голосов
/ 06 января 2012

PDF-файлы не содержат шрифтовых файлов, они могут вообще не содержать никаких шрифтов, хотя это редко.Внедренные данные шрифтов могут быть в изумительном разнообразии форматов:

  • тип 1 шрифты PostScript
  • тип 3 PostScript
  • шрифты шрифты TrueType
  • Шрифты PostScript CFF
  • CIDFonts с типом 1 Контуры PostScript
  • CIDFonts с типом 3 Контуры PostScript
  • CIDFonts с контурами TrueType
  • CIDFonts с контурами CFF
  • CIDFonts с растровыми изображениями

Может ли ваше приложение читать все эти форматы шрифтов?Если вы хотите их использовать, тогда вы должны использовать шрифты, встроенные в файл PDF, так как они очень часто являются поднаборными шрифтами и поставляются с пользовательской кодировкой, что означает, что даже если у вас есть оригинальный шрифт,Вы не можете использовать его, потому что Кодировка не будет правильной.

Конечно, возможно, что все эти файлы PDF созданы согласованным образом и не используют встроенные шрифты, но у меня есть сомнения ....

...