2010-03-12 3 views
17

Я извлекаю pdf в изображения/swf и текст с помощью SWFTools и XPDF. Я запускаю их в сценарии PDF.Выдержка TOC PDF?

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

+2

+1, я оценил бы видеть, как сделать это, как хорошо. –

+0

Если вы хотите сделать это с помощью стороннего приложения, я могу порекомендовать [Debenu PDF Aerialist] (http://www.debenu.com/products/desktop/debenu-pdf-aerialist/), который имеет функцию экспорта для "Содержание". –

ответ

11

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

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) 
+0

После дальнейших исследований я мог бы найти действительно полезные приложения для этого инструмента, я сам! +1 к Юсуке Шиняма и остальной команде PDFMiner! –

+0

Спасибо, я посмотрю .. но он генерирует TOC внутри XML тоже .. ass теперь я использую XPDF и PDF2SWF, чтобы получить контент уже :) Но нет опции для TOC – Chris

+0

Я думаю, что я не уверен, что вы спрашиваете. Вторая строка «пример» претендует на то, чтобы специально указать TOC в XML-файл, который вы можете анализировать любым способом. Я не использовал инструмент сам, это просто звучит так, как будто это выполнит то, что вы хотите сделать. –

0

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

This StackOverflow post также имеет несколько решений.

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

+0

Я использую XPDF pdf2txt уже ... но как бы вы это соответствовали? ToC обычно создается вручную .. и информация должна быть где-то в pdf .. (так как они могут иметь боковую панель) – Chris

+0

TOC * должен * быть создан только вручную, когда люди не имеют требуемого профессионала инструменты для этого автоматически. Если это делается автоматически, элементы в TOC будут помечены как закладки (и я думаю, что это то, что вы называете «боковой панелью») и связаны со своими страницами, и поэтому их легче сопоставить. Если они выполняются вручную, то они ничем не отличаются от любого другого фрагмента текста в любом PDF-файле и с успешным совпадением сценария они будут практически невозможны. –

2

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

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

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

+0

Спасибо, я дам это попробовать тоже ^^ – Chris

4

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

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

Вот как извлечь TOC с mutool

mutool show {your-pdf-file} outline

MuPDF

Смежные вопросы