Извлечь оглавление из PDF? - PullRequest
20 голосов
/ 12 марта 2010

Я извлекаю PDF в images / swf и текст с помощью SWFTools и XPDF .. Я запускаю их в сценарии PDF.

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

Ответы [ 4 ]

12 голосов
/ 25 марта 2010

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

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

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

С сайта:

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)
5 голосов
/ 06 мая 2016

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

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

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

mutool show {your-pdf-file} outline

MuPDF

2 голосов
/ 31 марта 2010

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

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

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

0 голосов
/ 24 марта 2010

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

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

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

...