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

Как вы отлаживаете PDF файлы?

Много раз я создаю PDF либо программно, и может возникнуть проблема с ним, например. какое-то конкретное письмо может не отображаться хорошо, иначе у меня могут быть проблемы с кодированием и т.д.

Есть ли способ отладки PDF? Например. см. подробную структуру?

4b9b3361

Ответ 1

Существует целый ряд бесплатных инструментов, которые позволят вам просмотреть кишки PDF, распакованные и расшифрованные (с учетом пароля).

На ум приходит RUPS для iText (но я пристрастен). Я не знаю, что есть эквивалент iTextSharp. Это графический интерфейс с древовидным представлением (что есть у ВСЕХ этих приложений) объектов PDF.

Некоторые позволят вам редактировать PDF в этом дереве, но не многие. Я верю, что Windjack PDF CanOpener поможет (наряду с некоторыми другими изящными функциями, которые можно ожидать от коммерческого плагина Acrobat).

И в крайнем случае, <вставить любимый текстовый редактор здесь> работает... но не пытайтесь ничего изменить. PDF - это двоичный формат: важны смещения байтов. Если ваш текстовый редактор изменит \n на\r\n (или попытается интерпретировать его как UTF-8, или, или, или), ваш PDF будет ужасно сломан. Не делай этого.

Я заканчиваю тем, что много раз искал данный номер объекта, чтобы найти косвенные ссылки. Всегда сложно найти ссылку на одну цифру, потому что в конце каждого десятого объекта отображается "4 объекта" (14, 24, 34, 1234 и т.д.). Поиск по регулярным выражениям, который ищет "начало строки-4 obj-end of line", был бы полезен, но я обычно использую блокнот, так что нет (и я в любом случае не большой парень с регулярными выражениями).

PS: Даже с элегантным плагином Acrobat (не может открывать, дом вырос из далекого прошлого), мне все еще нужно время от времени открывать текстовый редактор.

Acrobat будет вносить изменения время от времени по мере загрузки PDF файла (в основном для исправления ситуации), и если вы хотите узнать, что на самом деле там, вам нужно посмотреть на этот PDF файл другим способом. А когда вы пытаетесь отладить испорченный PDF файл, вам поможет акробат - это последнее, что вам нужно.

PPS: Acrobat также имеет изящную "проверку синтаксиса pdf" в своих advanced-> профилях предпечатной проверки. Также были проверены различные стандарты PDF/* (PDF/X, PDF/A-1 [a и b] и т.д.), Доступность и т.д. Они неоценимы, когда вы пытаетесь быть послушным. Не совсем тот инструмент отладки, о котором вы спрашивали, но тем не менее, очень удобный.

PPPS: " разобрать " два PDF- файла практически невозможно без написания специального инструмента, который сделает это за вас. Я написал что-то, что перечислило все страницы (с размерами) и поля (с типами, флагами и т.д.) В предсказуемом порядке и поместил его в текстовый файл, чтобы я мог различать файлы... но прямое различие двух PDF файлов бессмысленно. Существует слишком много способов различения "идентичных" файлов (порядок объектов, порядок словарных ключей, уровни сжатия и т.д.).

Ответ 3

Ну, я хотел отлаживать некоторые PDF файлы, которые я генерировал с помощью pdfLaTeX на днях, и я обнаружил, что Adobe [Acrobat] Reader не очень помог, так как слегка недействительные PDF файлы, которые я производил, откроются, как если бы они были нет проблем, они только не смогли закрыть. Это сделало цикл TeX/View/Edit немного больным, так как мне пришлось бы завершить весь процесс чтения, прежде чем я смогу TeX снова.

Я получил более благоприятные результаты, используя Ghostscript. В моем случае это было GSview, поскольку я использовал Windows; если бы я использовал Linux, я бы вместо этого использовал gv. Это не только не помешало мне переименовать файл (даже когда он был еще открыт), но было достаточно хорошо, чтобы создавать самые непонятные сообщения об ошибках, а не притворяться, что все в порядке. Это помогло мне, немного прищурившись, посмотреть, что я испортил в своем PDF-коде, и, наконец, привести пример, приведенный в в ответ на мой tex.SE мой

Было бы неплохо, если бы я понял, как рассказать Ghostscript о том, чтобы включить в сообщение об ошибке немного больше деталей (ну, наверное, я мог бы, если бы я достаточно долго смотрел на правильную часть руководства, на самом деле), но было не так сложно понять, что я испортил, сравнив PDF с сообщением об ошибке Ghostscript и Ссылка Adobe PDF. (Я ссылаюсь на страницу архива, потому что ссылки PDF там были полностью созданы Adobe и имеют гораздо более высокое типографское качество, а также намного меньший размер, чем стандарт ISO для PDF, который находится на главной странице.)

Конечно, для того, чтобы понять это в текстовом редакторе, вероятно, важно, чтобы потоки страниц не были сжаты, поэтому я бы предложил вам выяснить, как проинструктировать ваше программное обеспечение не сжимать их, или найдите что-то, что впоследствии распакует их.

Итак, короче:

  • Не используйте Adobe [Acrobat] Reader (пока вы не подумаете, что ваш PDF хорош, в любом случае).

  • Использовать Ghostscript (обычно через GSview или gv).

  • Попробуйте поручить вашему программному обеспечению воздерживаться от сжатия потоков страниц.

  • Использовать текстовый редактор для просмотра PDF (предпочтительно, для режима PostScript, поскольку синтаксис тесно связан).

  • Используйте ссылку в PDF.

Ответ 5

другим инструментом будет pdfstreamdumper
https://github.com/dzzie/pdfstreamdumper

его действительно достаточно интуитивно, чтобы пройти через для анализа кода javascript/as3 и т.д. построил немало вещей
(hexviewer/refactor (deobfucators) и т.д.)

Ответ 6

Это то, что я обычно делаю в Linux:

  • Установите пакет qpdf и запустите qpdf --qdf --object-streams=disable orig.pdf decoded.pdf. Теперь вы можете открыть decoded.pdf в текстовом редакторе и посмотреть исходный pdf.

  • Также я установил PDFedit на linux, в котором есть программа с графическим интерфейсом, которая позволяет вам просматривать всю структуру pdf, не выходя из графического интерфейса.

Ответ 7

Просто откройте его в каком-то текстовом редакторе. PDF на самом деле является файлом ASCII (и он может содержать встроенные двоичные данные).