Я извлекаю PDF в изображения / swf и текст с помощью SWFTools и XPDF.. Я выполняю их в сценарии PDF.
Но теперь я пытаюсь пойти, один шаг вперед и пытаться получить TOC от PDF является этим возможный извлечь эту информацию?
Я нашел это, немного поискав. Выглядит довольно многообещающе.
PDFMiner: http://www.unixuser.org/~euske/python/pdfminer/index.html
Примечание: инструмент основан на Python, но вы должны иметь возможность использовать его через shell. В качестве альтернативы вы можете почерпнуть полезную информацию из исходного кода, поскольку проект является открытым.
С сайта:
dumppdf.py
dumppdf.py выгружает внутреннее содержимое PDF-файла в псевдо-XML формате. Эта программа предназначена в основном для отладки, но из нее также можно извлечь некоторое значимое содержимое (например, изображения).
Примеры:
$ dumppdf.py -a foo.pdf (дамп всех заголовков и содержимого, кроме объектов потока) $ dumppdf.py -T foo.pdf (дамп оглавления) $ dumppdf.py -r -i6 foo.pdf > pic.jpeg (извлечение изображения в формате JPEG)
Думаю, неплохо было бы начать с просмотра PHP-библиотеки PDFLib . Если вы прокрутите вниз, вы увидите множество размещенных пользователями решений для преобразования PDF в HTML или PDF в текст. После преобразования относительно простая функция сопоставления может извлекать помеченные элементы оглавления и, например, помещать их в массив, которым вы затем можете манипулировать по своему усмотрению.
В этом сообщении StackOverflow также есть еще несколько решений.
Надеюсь, это поможет.
В качестве альтернативы вы можете использовать MuPDF, который является довольно легкой, но полной реализацией PDF, написанной на C. В подкаталоге apps/
вы найдете некоторые инструменты, которые можно просмотреть,дамп и извлечение информации из PDF-файлов. Я бы предпочел MuPDF xpdf, потому что он активно поддерживается и имеет лучшую поддержку PDF.
В противном случае всегда есть Poppler, который на самом деле основан на xpdf. Разработчики портировали его код на C++. Следовательно, он работает хуже, чем его предшественник. По сравнению с MuPDF, Poppler, кажется, имеет немного больше возможностей, но взамен код намного сложнее.
Для ваших целей MuPDF должно быть достаточно. Вы можете взломать простое приложение из примера кода, приведенного в apps/
, которое извлекает всю необходимую информацию, не полагаясь на внешние приложения.