Как я могу просматривать PDF-файлы, желательно с помощью инструмента?
Пример использования: я пытаюсь программно сгенерировать файлы PDF (с помощью iText). У меня проблемы с получением определенных макетов, но у меня есть файлы PDF с текстом, выложенным так, как я хочу (сгенерированный из Word). Я хотел бы реконструировать, как они это делают.
PDF Inspector вроде бы хорош, но я ищу что-нибудь для Windows.
no main manifest attribute, in PDF Document Inspector.jar
Ответы:
Adobe Acrobat имеет очень крутой, но довольно хорошо скрытый режим, позволяющий просматривать файлы PDF. Я написал статью в блоге, объясняющую это, на https://blog.idrsolutions.com/2009/04/viewing-pdf-objects/
источник
Помимо инструментов на основе графического интерфейса, упомянутых в других ответах, существует несколько инструментов командной строки, которые могут преобразовать исходный исходный код PDF в другое представление, которое позволяет вам проверять (теперь измененный файл) с помощью текстового редактора. Все перечисленные ниже инструменты работают в Linux, Mac OS X, других системах Unix или Windows.
qpdf
(мой любимый)Используйте qpdf для распаковки (большинства) потоков объектов, а также для разделения
ObjStm
объектов на отдельные косвенные объекты:qpdf
описывает себя как инструмент, который выполняет «структурные преобразования с сохранением содержимого в файлах PDF» .Затем просто откройте + проверьте
uncompressed-qpdf.pdf
файл в своем любимом текстовом редакторе. Большая часть ранее сжатых (и, следовательно, двоичных) байтов теперь будет обычным текстом.mutool
Существует также
mutool
инструмент командной строки, который поставляется в комплекте со средством просмотра PDF-файлов MuPDF (который является дочерним продуктом Ghostscript, созданным той же компанией Artifex ). Следующая команда также распаковывает потоки и упрощает их просмотр в текстовом редакторе:podofouncompress
PoDoFo - это библиотека FreeSoftware / OpenSource для работы с форматом PDF, которая включает в себя несколько инструментов командной строки, в том числе
podofouncompress
. Используйте это так, чтобы распаковать потоки PDF:peepdf.py
PeePDF - это инструмент на основе Python, который помогает вам исследовать файлы PDF. Его первоначальная цель заключалась в исследовании и анализе вредоносных программ на основе PDF, но я считаю полезным также исследовать структуру полностью безопасных файлов PDF.
Его можно использовать в интерактивном режиме для «просмотра» объектов и потоков, содержащихся в PDF.
Я не буду приводить здесь пример использования, а только ссылку на его документацию:
pdfid.py
а такжеpdf-parser.py
pdfid.py
иpdf-parser.py
два инструмента PDF от Дидье Стивенса, написанные на Python.Их опыт также помогает исследовать вредоносные PDF-файлы, но я также считаю полезным анализировать структуру и содержимое безопасных PDF-файлов.
Вот пример того, как я извлекаю несжатый поток объекта PDF № 5 в файл * .dump:
Заключительные примечания
Обратите внимание, что некоторые двоичные части внутри PDF-файла не обязательно являются несжимаемыми (или декодируемыми в читаемый человеком код ASCII), потому что они встроены и используются в своем собственном формате внутри PDF-файлов. Такие части PDF представляют собой изображения JPEG, шрифты или цветовые профили ICC.
Если вы сравните вышеуказанные инструменты и приведенные примеры командной строки, вы обнаружите, что НЕ все они производят одинаковые результаты. Попытка сравнить их на предмет их различий сама по себе может помочь вам лучше понять природу синтаксиса PDF и формата файла.
источник
Я использую iText RUPS (чтение и обновление синтаксиса PDF) в Linux. Поскольку он написан на Java, он работает и в Windows. Вы можете просматривать все объекты в PDF-файле в древовидной структуре. Он также может декодировать закодированные потоки Flate на лету, чтобы упростить проверку.
Вот скриншот:
источник
java -jar itext-rups-5.5.6.jar
->Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/itextpdf/text/Version
- Как ты должен управлять этой штукой? Изменить: понял это. Вам не следует загружать файл по умолчанию, предлагаемый SourceForge, вам необходимо загрузить .jar, который включает зависимости.PDFXplorer от O2 Solutions отлично справляется с отображением внутренних компонентов.
http://www.o2sol.com/pdfxplorer/overview.htm
(Бесплатный отвлекающий баннер внизу).
источник
Я успешно использовал PDFBox . Вот пример того, как выглядит код (из версии 0.7.2), вероятно, взятый из одного из предоставленных примеров:
источник
Есть и другой вариант. Adobe Acrobat Pro также может отображать внутреннюю древовидную структуру PDF-файла.
Сверху Adobe Acrobat Pro также может отображать внутреннюю структуру шрифтов документа в PDF, в большинстве других «просмотрщиков древовидной структуры PDF» этого нет.
источник
Программа просмотра объектов в Acrobat хороша, но программа Windjack Solution PDF Canopener позволяет лучше проверять с помощью пипетки для выбора объектов на странице. Также позволяет вносить изменения в PDF.
http://www.windjack.com/products/pdfcanopener.html
источник
PDF Analyzer похож на PDFXplorer , но имеет больше возможностей. Это также бесплатно после однократной регистрации.
источник
Если вы хотите работать программно из Python, pdfminer - хороший вариант. Это позволяет вам работать со структурой PDF в памяти как иерархией объектов или сериализовать ее как XML.
источник
Я предлагаю Foxit PDF Reader, который очень полезен при редактировании текста в PDF-файле.
источник