Вопрос

Я извлекаю PDF-файл в изображения / swf и текст с помощью SWFTools и XPDF..Я запускаю их в PDF-скрипте.

Но теперь я пытаюсь сделать еще один шаг вперед и попытаться получить оглавление из PDF-файла. Возможно ли извлечь эту информацию?

Это было полезно?

Решение

Я нашел это после небольшого поиска.Это выглядит довольно многообещающе.

PDFMiner: http://www.unixuser.org /~euske/python/pdfminer/index.html

Примечание:Инструмент основан на Python, но вы должны иметь возможность использовать инструмент через shell access.В качестве альтернативы, вы можете почерпнуть некоторую полезную информацию из самого исходного кода, поскольку проект имеет открытый исходный код.

С сайта:

dumppdf.py

dumppdf.py сбрасывает внутреннее содержимое PDF-файла в псевдо-XML-формате.Эта программа предназначена в первую очередь для целей отладки, но также возможно извлекать некоторое значимое содержимое (например, изображения).

Примеры:

$ dumppdf.py -a foo.pdf
(dump all the headers and contents, except stream objects)

$ dumppdf.py -T foo.pdf
(dump the table of contents)

$ dumppdf.py -r -i6 foo.pdf > pic.jpeg
(extract a JPEG image)

Другие советы

Я пытался dump.pdf -T, но это не сработало с некоторыми PDF-файлами.

Существует еще один инструмент из MuPDF с именем mutool, который я только что нашел.Я не знаю, лучше ли это, чем dump.pdf, но работа с файлом PDF dump.pdf выдает ошибку.

Вот как извлечь TOC с помощью mutool

mutool show {your-pdf-file} outline

MuPDF

В качестве альтернативы вы можете использовать MuPDF который представляет собой довольно легкую, но полную реализацию PDF , написанную C.В apps/ в подкаталоге вы найдете несколько инструментов, которые могут просматривать, сбрасывать и извлекать информацию из PDF-файлов.Я бы предпочел MuPDF, а не xpdf, потому что он активно поддерживается и имеет лучшую поддержку PDF.

В противном случае, всегда есть Попплер который на самом деле основан на xpdf.Разработчики портировали его код на C ++.Следовательно, он работает хуже, чем его предшественник.По сравнению с MuPDF, Poppler, кажется, обладает немного большими возможностями, но в свою очередь код намного сложнее.

Однако для ваших целей MuPDF должно быть достаточно.Вы могли бы вместе взломать простое приложение из примера кода, приведенного в apps/ это извлекает всю необходимую вам информацию, не полагаясь на внешние приложения.

Я думаю, глядя на PDFlib в PHP было бы очень хорошим местом для начала.Если вы прокрутите страницу вниз, то увидите множество опубликованных пользователями решений для преобразования PDF в HTML или PDF в текст.После преобразования относительно простая функция сопоставления может извлечь помеченные элементы TOC и, например, поместить их в массив, которым затем вы можете манипулировать по своему усмотрению.

Этот пост StackOverflow также есть еще несколько решений.

Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top