Подтвердить что ты не робот

Лучший инструмент для проверки файлов PDF?

Какой инструмент вы рекомендуете для проверки файлов PDF?

Случай использования: Я пытаюсь программно генерировать PDF файлы (используя iText). У меня возникли проблемы с получением определенных макетов, но у меня есть файлы PDF с текстом, который я написал (я создал из Word). Я хотел бы перестроить, как они это делают.

PDF Inspector кажется хорошим, но я ищу что-то для Windows.

4b9b3361

Ответ 1

Adobe Acrobat имеет очень крутой, но довольно хорошо скрытый режим, позволяющий просматривать PDF файлы. Я написал статью в блоге, объясняющую это по адресу https://blog.idrsolutions.com/2009/04/viewing-pdf-objects/

Ответ 2

Помимо инструментов на основе графического интерфейса, упомянутых в других ответах, есть несколько инструментов командной строки, которые могут преобразовать исходный исходный код PDF в другое представление, которое позволяет вам проверять (теперь измененный файл) с помощью текстового редактора. Все приведенные ниже инструменты работают в Linux, Mac OS X, других системах Unix или Windows.

qpdf (мой любимый)

Используйте qpdf для распаковки (большинства) потоков объектов, а также для ObjStm объектов ObjStm на отдельные косвенные объекты:

qpdf --qdf --object-streams=disable orig.pdf uncompressed-qpdf.pdf

qpdf описывает себя как инструмент, который выполняет "структурные, сохраняющие контент преобразования в файлах PDF".

Затем просто откройте + проверьте файл uncompressed-qpdf.pdf в вашем любимом текстовом редакторе. Большинство ранее сжатых (и, следовательно, двоичных) байтов теперь будут в виде простого текста.

mutool

Существует также mutool командной строки mutool, который поставляется вместе с программой просмотра PDF MuPDF (которая является родственным продуктом Ghostscript, произведенным той же компанией, Artifex). Следующая команда также распаковывает потоки и облегчает их просмотр в текстовом редакторе:

mutool clean -d orig.pdf uncompressed-mutool.pdf

podofouncompress

PoDoFo - это библиотека FreeSoftware/OpenSource для работы с форматом PDF, включающая несколько инструментов командной строки, включая podofouncompress. Используйте это так, чтобы распаковать потоки PDF:

podofouncompress orig.pdf uncompressed-podofo.pdf

peepdf.py

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

Его можно использовать в интерактивном режиме для "просмотра" объектов и потоков, содержащихся в PDF.

Я не буду приводить здесь пример использования, а только ссылку на документацию:

pdfid.py и pdf-parser.py

pdfid.py и pdf-parser.py - это два инструмента PDF от Didier Stevens, написанные на Python.

Они также помогают исследовать вредоносные PDF файлы, но я также считаю полезным анализировать структуру и содержимое файлов PDF.

Вот пример, как я мог бы извлечь несжатый поток объекта PDF нет. 5 в файл *.dump:

pdf-parser.py -o 5 -f -d obj5.dump my.pdf

Финальные заметки

  1. Обратите внимание, что некоторые двоичные части внутри PDF файла не обязательно являются несжимаемыми (или декодируемыми в читаемый человеком код ASCII), поскольку они встроены и используются в своем собственном формате в PDF файлах. Такими частями PDF являются изображения JPEG, шрифты или цветовые профили ICC.

  2. Если вы сравните вышеупомянутые инструменты и приведенные примеры командной строки, вы обнаружите, что они НЕ все выдают одинаковые результаты. Попытка сравнить их по различиям сама по себе может помочь вам лучше понять природу синтаксиса PDF и формат файла.

Ответ 3

Я использую iText RUPS (чтение и обновление синтаксиса PDF) в Linux. Поскольку он написан на Java, он также работает на Windows. Вы можете просматривать все объекты в файле PDF в древовидной структуре. Он также может декодировать потоки с кодированием Flate "на лету", чтобы облегчить проверку.

Вот скриншот:

iText RUPS screenshot

Ответ 4

Я использовал PDFBox с большим успехом. Вот пример того, как выглядит код (начиная с версии 0.7.2), который, вероятно, взят из одного из предоставленных примеров:

// load the document
System.out.println("Reading document: " + filename);
PDDocument doc = null;                                                                                                                                                                                                          
doc = PDDocument.load(filename);

// look at all the document information
PDDocumentInformation info = doc.getDocumentInformation();
COSDictionary dict = info.getDictionary();
List l = dict.keyList();
for (Object o : l) {
    //System.out.println(o.toString() + " " + dict.getString(o));
    System.out.println(o.toString());
}

// look at the document catalog
PDDocumentCatalog cat = doc.getDocumentCatalog();
System.out.println("Catalog:" + cat);

List<PDPage> lp = cat.getAllPages();
System.out.println("# Pages: " + lp.size());
PDPage page = lp.get(4);
System.out.println("Page: " + page);
System.out.println("\tCropBox: " + page.getCropBox());
System.out.println("\tMediaBox: " + page.getMediaBox());
System.out.println("\tResources: " + page.getResources());
System.out.println("\tRotation: " + page.getRotation());
System.out.println("\tArtBox: " + page.getArtBox());
System.out.println("\tBleedBox: " + page.getBleedBox());
System.out.println("\tContents: " + page.getContents());
System.out.println("\tTrimBox: " + page.getTrimBox());
List<PDAnnotation> la = page.getAnnotations();
System.out.println("\t# Annotations: " + la.size());

Ответ 5

Средство просмотра объектов в Acrobat является хорошим, но Windjack Solution PDF Canopener позволяет лучше проверять с помощью пипетки для выбора объектов на странице. Также допускается внесение изменений в PDF.

http://www.windjack.com/products/pdfcanopener.html

Ответ 6

PDFXplorer от O2 Solutions выполняет выдающуюся работу по отображению внутренних компонентов.

http://www.o2sol.com/pdfxplorer/overview.htm

(Свободный, отвлекающий баннер внизу).

Ответ 7

Есть и другой вариант. Adobe Acrobat Pro также может отображать внутреннюю древовидную структуру PDF.

  • Открыть предварительный просмотр
  • Перейдите в раздел "Параметры" (правый верхний угол)
  • Внутренняя структура PDF

В верхней части Adobe Acrobat Pro также может отображать внутреннюю структуру Document Fonts в PDF, большая часть другого "средства просмотра древовидной структуры PDF" не имеет этого описания

введите описание изображения здесь

Ответ 8

Если вы хотите работать программно из Python, хорошим выбором будет pdfminer. Это позволяет работать со структурой PDF в памяти как иерархия объектов или сериализовать ее как XML.

Ответ 10

Мой sugession Foxit PDF Reader, который очень полезен для выполнения важной работы по редактированию текста в pdf файле.