Извлекайте шрифты из PDF программно или вызывая внешнюю утилиту - PullRequest
0 голосов
/ 17 ноября 2009

Я разрабатываю конвертер PDF в электронную книгу, который будет работать на сервере.

Мне нужно программно извлечь встроенные шрифты из файла PDF, чтобы завершить проект. Теперь я могу извлекать изображения и текст, но для точного отображения содержимого в проигрывателе Flash Player мне необходимо извлечь шрифты из PDF и скомпилировать их в SWF для загрузки приложением Flex во время выполнения.

Мне интересно, возможно ли это, так как такой инструмент, как pdf2swf.exe от SWFTools, способен это сделать. Я декомпилировал файл swf, созданный этим инструментом, и в него были вставлены шрифты.

Извлеченные шрифты будут использоваться для отображения того же содержимого только из файла PDF, только во Flash Player. Так что я думаю, что это не будет нарушением прав? Более того, люди, которые будут использовать конвертер, имеют все права на содержимое файлов PDF.

Итак, я вижу следующий рабочий процесс: 1. Вызвать pdf2swf.exe для создания SWF-файла со встроенными шрифтами; 2. Вызвать некоторый инструмент (Какой?), Чтобы проанализировать предыдущие SWF-файлы с SWF-файлами с отдельными шрифтами. 3. Загрузите SWF-файлы со шрифтами в приложение Flex во время выполнения для правильного отображения содержимого.

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

Ответы [ 3 ]

1 голос
/ 18 ноября 2009

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

1 голос
/ 27 октября 2015

Вы можете извлечь глифы (не прямые шрифты) из PDF, используя mutools [1].

Затем вы можете конвертировать глифы в шрифты, используя FontForge [2] (будьте осторожны, дрянные)

[1] http://mupdf.googlecode.com/files/mupdf-1.3-windows.zip

[2] http://garr.dl.sourceforge.net/project/fontforge/fontforge-executables/FontForgeSetup_2012-07-31_Windows.exe

1 голос
/ 17 ноября 2009

Я не уверен, что существует какой-либо бесплатный инструмент, который обеспечивает прямое извлечение шрифта из PDF через CLI. Но используя первый рабочий процесс (используя swftools 0.9.0), вы можете добиться этого. Допустим, вы хотите сделать это в ruby:

<code>//extract all the font ids
fontids=`swfextract.exe #{swf_file}|grep Fonts|cut -d\) -f 2|sed -e "s/ //g"`
//extract all the fonts into output.swf
system("swfextract -F #{fontids} #{swf_file}")
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...