Структура файла PDF? - PullRequest
       61

Структура файла PDF?

59 голосов
/ 18 сентября 2008

Для небольшого проекта мне нужно разобрать pdf файлы и взять определенную часть из них (простая цепочка символов). Я хотел бы использовать Python для этого, и я нашел несколько библиотек, которые могут делать то, что я хочу в некоторых отношениях.

Но теперь, после нескольких исследований, мне интересно, какова реальная структура файла PDF, кто-нибудь знает, есть ли где-нибудь спецификация или какие-то объяснения в сети? Я нашел ссылку на Adobe, но кажется, что это мертвая ссылка: (

Ответы [ 11 ]

39 голосов
/ 18 сентября 2008

Вот ссылка на справочный материал Adobe

http://www.adobe.com/devnet/pdf/pdf_reference.html

Вы должны знать, что PDF касается только презентации, а не структуры. Разбор не будет легким.

24 голосов
/ 18 сентября 2008

Когда я впервые начал работать с PDF, я обнаружил, что PDF-справочник очень сложен для навигации. Это может помочь вам узнать, что обзор структуры файла находится в синтаксисе, и то, что Adobe называет структурой документа, является структурой объекта, а не структурой файла. Это также найдено в синтаксисе. Описание операторов скрыто в Приложении A - очень полезно для понимания того, что происходит в потоках контента. Если вы когда-нибудь испытываете боль от работы с цветовыми пространствами, вы найдете это в Графике! Надеюсь, эти указатели помогут вам найти вещи быстрее, чем я.

Если вы используете Windows, pdftron CosEdit позволяет просматривать структуру объекта, чтобы понять ее. Доступна бесплатная демоверсия, которая позволяет вам изучить файл, но не сохранить его.

23 голосов
/ 12 августа 2014

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

Другие полезные ссылки:

10 голосов
/ 18 сентября 2008

Вот необработанная ссылка на PDF 1.7 , а также статья , описывающая структуру файла PDF . Если вы используете Vim, плагин pdftk - это хороший способ изучить документ в несколько менее сырой форме, а сама утилита pdftk (и ее источник GPL) отличный способ дразнить документы.

7 голосов
/ 09 июля 2009

Я пытаюсь сделать то же самое. Ссылка в формате PDF - очень сложный документ для чтения. Этот урок - лучшее начало, я думаю.

6 голосов
/ 30 июля 2011

Это может помочь пролить немного света: (со страницы 11 в PDF32000.book)

Синтаксис PDF лучше всего понять, рассматривая его как четыре части, как показано на рисунке 1:

• Объекты. Документ PDF - это структура данных, состоящая из небольшого набора базовых типов объектов данных. Подпункт 7.2 «Лексические соглашения» описывает набор символов, используемый для написания объектов и других синтаксические элементы. Подпункт 7.3 «Объекты» описывает синтаксис и основные свойства объектов. Подпункт 7.3.8, «Объекты потока», содержит полную информацию о наиболее сложном типе данных - потоке. объект.

• Файловая структура. Структура файла PDF определяет, как объекты хранятся в файле PDF, как они Доступ и как они обновляются. Эта структура не зависит от семантики объектов. под- раздел 7.5 «Структура файла» описывает структуру файла. Подпункт 7.6 «Шифрование» описывает уровень файлов механизм защиты содержимого документа от несанкционированного доступа.

• Структура документа. Структура документа PDF определяет, как основные типы объектов используются для представляют компоненты документа PDF: страницы, шрифты, аннотации и т. д. Подпункт 7.7, «Структура документа» описывает общую структуру документа; более поздние пункты обращаются к подробным семантика компонентов.

• Потоки контента. Поток содержимого PDF содержит последовательность инструкций, описывающих внешний вид страница или другой графический объект. Эти инструкции, хотя и представлены в виде объектов, концептуально отличается от объектов, которые представляют структуру документа и описываются отдельно. Подпункт 7.8, «Потоки контента и ресурсы», рассматриваются потоки контента PDF и связанные с ними ресурсы.

Похоже, что навигация по PDF-файлу потребует чуть больше времени.

3 голосов
/ 02 марта 2014

У Дидье есть инструмент для анализа PDF:

http://didierstevens.com/files/software/pdf-parser_V0_4_3.zip

или здесь:

http://blog.didierstevens.com/programs/pdf-tools/, в котором каталогизировано несколько связанных с этим инструментов pdf-анализа.

Другой инструмент здесь:

http://mshahzadlatif.wordpress.com/2011/09/28/view-pdf-structure-using-adobe-acrobat-or-a-free-tool-called-pdfxplorer/

3 голосов
/ 17 сентября 2013

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

2 голосов
/ 24 августа 2010

Один из способов получить подсказки - создать файл PDF, состоящий из пустой страницы. У меня есть CutePDF Writer на моем компьютере, и я создал пустой документ WordPad из одной страницы. Распечатывается в файл .pdf, а затем открывает файл .pdf с помощью Блокнота.

Затем, используйте копию этого файла и удалите строки или блоки текста, которые могут представлять интерес, затем перезагрузите Acrobat Reader Вы будете удивлены тем, как мало информации требуется для создания рабочего одностраничного PDF-документа.

Я пытаюсь составить электронную таблицу для создания PDF-формы из кода.

2 голосов
/ 19 сентября 2008

Извлечение текста из PDF является сложной проблемой, потому что PDF имеет такую ​​структуру, ориентированную на макет. Вы можете увидеть документы и исходный код моей едва успешной попытки CPAN (моя реализация на Perl). Структура данных PDF очень крутая и хорошо спроектированная, но ее легче писать, чем читать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...