Я извлекаю pdf в изображения /swf и текст с помощью SWFTools и XPDF. Я запускаю их в формате PDF script.
Но теперь я пытаюсь сделать еще один шаг и попытаться получить TOC из PDF, можно ли извлечь эту информацию?
Я извлекаю pdf в изображения /swf и текст с помощью SWFTools и XPDF. Я запускаю их в формате PDF script.
Но теперь я пытаюсь сделать еще один шаг и попытаться получить TOC из PDF, можно ли извлечь эту информацию?
Я нашел это с небольшим количеством поисков. Это выглядит довольно многообещающе.
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)
Я пробовал dump.pdf -T
, но он не работал в некоторых файлах PDF.
Есть еще один инструмент из MuPDF с именем mutool
, который я только что нашел. Я не знаю, было ли это лучше, чем dump.pdf, но работал над файлом PDF dump.pdf выдает ошибку.
Здесь, как извлечь TOC с mutool
mutool show {your-pdf-file} outline
В качестве альтернативы вы можете использовать MuPDF, который представляет собой довольно легкую, но полную реализацию PDF, написанную C. В подкаталоге apps/
вы найдут некоторые инструменты, которые могут просматривать, выгружать и извлекать информацию из файлов PDF. Я бы предпочел MuPDF над xpdf, потому что он активно поддерживается и имеет лучшую поддержку PDF.
В противном случае всегда Poppler, который фактически основан на xpdf. Разработчики портировали свой код на С++. Следовательно, он работает хуже, чем его предшественник. По сравнению с MuPDF, Poppler, похоже, имеет несколько больше функций, но в свою очередь код намного сложнее.
Для ваших целей MuPDF должен быть достаточным. Вы можете взломать простое приложение из кода примера, представленного в apps/
, который извлекает всю необходимую информацию, не полагаясь на внешние приложения.
Я думаю, что смотреть на PHP PDFLib было бы очень хорошим местом для начала. Если вы прокрутите вниз, вы увидите множество решений для преобразования PDF в HTML или PDF в текст. После преобразования относительно простая функция сопоставления может извлекать помеченные элементы TOC и, например, выталкивать их в массив, который вы затем можете манипулировать по своему усмотрению.
fooobar.com/info/299050/... есть еще несколько решений.
Надеюсь, что это поможет.