2008-09-17 24 views
43

Para un proyecto pequeño, tengo que analizar archivos PDF y tomar una parte específica de ellos (una cadena simple de caracteres). Me gustaría utilizar Python para hacer esto y he encontrado varias bibliotecas que son capaces de hacer lo que quiero de alguna manera.Estructura de un archivo PDF?

Pero ahora, después de algunas investigaciones, me pregunto cuál es la estructura real de un archivo pdf, ¿alguien sabe si hay una especificación o algunas explicaciones en línea? He encontrado un enlace en el adobe, pero parece que se trata de un vínculo roto :(

Respuesta

27

Aquí hay un enlace a material de referencia de Adobe

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

usted debe saber sin embargo que PDF es sólo alrededor de presentación, no estructura. de análisis no es fácil.

+0

Ok ... Greant el enlace está bien ahora ... Cuando hice mis investigaciones no pude descargar la última referencia. –

+35

No lo mires demasiado tiempo; te volverás loco – Will

+1

Soy nuevo en el análisis de PDF, y encontré algunos enlaces que quiero compartir, [link1] (http://www.planetpdf.com/developer/article.asp?ContentID=navigating_the_internal_struct), [link2] (http://resources.infosecinstitute.com/pdf-file-format-basic-structure/) y [link3] (https://blog.idrsolutions.com/2010/09/grow-your-own-pdf-file -parte-2-estructura-de-un-archivo-pdf /). – RBK

9

aquí está la cruda reference of PDF 1.7, y aquí es un artículo describing the structure of a PDF archivo. Si utiliza Vim, la pdftk plugin es una buena manera de explorar el documento en una forma siempre tan poco menos cruda y la propia utilidad pdftk (una d su fuente de GPL) es una gran manera de burlar documentos aparte.

+1

La referencia en bruto parece inútil. ¿Contiene solo una página? – Carcamano

18

Cuando comencé a trabajar con PDF, encontré que el PDF reference era muy difícil de navegar. Puede serle útil saber que la sinopsis de la estructura del archivo se encuentra en la sintaxis, y lo que Adobe llama la estructura del documento es la estructura del objeto y no la estructura del archivo. Eso también se encuentra en la sintaxis. La descripción de los operadores está oculta en el Apéndice A, muy útil para comprender lo que está sucediendo en las secuencias de contenido. Si alguna vez tiene el dolor de trabajar con espacios de color, ¡lo encontrará oculto en Graphics! Espero que estos indicadores te ayuden a encontrar las cosas más rápido que yo.

Si está utilizando Windows, pdftron CosEdit le permite navegar por la estructura del objeto para comprenderlo. Hay una demostración gratuita disponible que le permite examinar el archivo pero no guardarlo.

+0

+1. Parece que CosEdit es un gran navegador introductorio, no perfecto, pero mucho mejor que tratar de grep a través del archivo binario sin formato. :/ –

+0

Descargué CosEdit, pero rechazó mi PDF. El mismo PDF es aceptado por otros programas. Es posible que CosEdit tenga razón, pero no me ayudó a determinar qué problema tenía mi PDF. – LarsH

2

Extraer texto de PDF es un problema difícil porque PDF tiene una estructura orientada al diseño. Puede ver el docs and source code de mi intento apenas exitoso de CPAN (mi implementación está en Perl). La estructura de datos PDF es muy buena y está bien diseñada, pero es más fácil escribir que leer.

6

Estoy tratando de hacer más o menos lo mismo. La referencia en PDF es un documento muy difícil de leer. This tutorial es un mejor comienzo, creo.

1

Una forma de obtener algunas pistas es crear un archivo PDF que consta de una página en blanco. Tengo CutePDF Writer en mi computadora e hice un documento en blanco de Wordpad de una página. Impreso en un archivo .pdf, y luego abierto el archivo .pdf con el Bloc de notas.

A continuación, use una copia de este archivo y elimine las líneas o bloques de texto que puedan ser de su interés, luego vuelva a cargar en Acrobat Reader. Te sorprendería la poca información que se necesita para crear un documento PDF de una página en funcionamiento.

Intento crear una hoja de cálculo para crear un formulario PDF a partir del código.

4

Esto puede ayudar a arrojar un poco de luz: (de la página 11 de PDF32000.book)

sintaxis PDF se entiende mejor al considerar como cuatro partes, como se muestra en la Figura 1:

• Objetos.Un documento PDF es una estructura de datos compuesta de un pequeño conjunto de tipos básicos de objetos de datos. La Subcláusula 7.2, "Convenciones léxicas", describe el juego de caracteres utilizado para escribir objetos y otros elementos sintácticos . La Subcláusula 7.3, "Objetos", describe la sintaxis y las propiedades esenciales de los objetos. La Subcláusula 7.3.8, "Objetos de secuencia", proporciona detalles completos del tipo de datos más complejo, el objeto de secuencia .

• Estructura de archivo. La estructura del archivo PDF determina cómo se almacenan los objetos en un archivo PDF, cómo se accede a ellos al y cómo se actualizan. Esta estructura es independiente de la semántica de los objetos. Sub- cláusula 7.5, "Estructura de archivos", describe la estructura del archivo. La subcláusula 7.6, "Cifrado", describe un mecanismo de nivel de archivo para proteger el contenido de un documento del acceso no autorizado.

• Estructura del documento. La estructura del documento PDF especifica cómo se usan los tipos básicos de objetos para representar los componentes de un documento PDF: páginas, fuentes, anotaciones, etc. Sub-cláusula 7.7, "Estructura del documento", describe la estructura general del documento; las cláusulas posteriores abordan la semántica detallada de de los componentes.

• Secuencias de contenido. Un flujo de contenido PDF contiene una secuencia de instrucciones que describen la apariencia de una página u otra entidad gráfica. Estas instrucciones, si bien también se representan como objetos, son conceptualmente distintas de los objetos que representan la estructura del documento y se describen por separado. Subcláusula 7.8, "Flujos de contenido y recursos", analiza las secuencias de contenido PDF y sus recursos asociados.

Parece que navegar un archivo PDF requerirá un poco más que un esfuerzo pasajero.

2

Si desea analizar PDF utilizando Python, consulte PDFMINER. Esta es la mejor biblioteca para analizar archivos PDF hasta la fecha.

+1

PDFMiner es genial. Especialmente intente 'pdf2txt -t html -d -Y exacto -o foo.html foo.pdf'. Es una herramienta bastante buena para echar un vistazo a la estructura de una página PDF. También estoy trabajando en algunas mejoras para nuestro propio proyecto. – LarsH

13

he encontrado el GNU Introduction to PDF para ser útil en la comprensión de la estructura. Incluye un example PDF file de fácil lectura que describen con todo detalle.

Otros enlaces útiles:

+0

Los enlaces de GNU se han quedado obsoletos – dwarring

+1

@dwarring Los he corregido con enlaces webarchive para la posteridad. – vard

Cuestiones relacionadas