Un PDF es un contenedor de objetos numerados, una tabla que dice dónde empieza cada uno y un tráiler que dice por dónde empezar a leer. Las páginas son objetos, las fuentes son objetos y las instrucciones de dibujo de cada página son un flujo de operadores. Trabaje con los archivos mediante Girar PDF, Editor de Metadatos PDF y Conversor de PDF a Texto; el término se define en PDF (formato de documento portátil).
Las cuatro partes de un archivo
- Cabecera:
%PDF-1.4indica la versión. - Cuerpo: objetos numerados como
3 0 obj ... endobj(número de objeto, generación y luego el contenido). - Tabla de referencias cruzadas (
xref): para cada objeto, el desplazamiento en bytes donde empieza, de modo que un lector pueda saltar directamente a él. - Tráiler: nombra el objeto raíz (
/Root) y termina constartxref, el desplazamiento de la tabla, y luego%%EOF.
Un PDF mínimo completo
Este archivo de una página es completo. Sus desplazamientos son reales: pdfinfo lo lee como una página de 200 × 100 puntos y pdftotext extrae «Hello PDF».
%PDF-1.4
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
2 0 obj
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
endobj
3 0 obj
<< /Type /Page /Parent 2 0 R /MediaBox [0 0 200 100] /Contents 4 0 R /Resources << /Font << /F1 5 0 R >> >> >>
endobj
4 0 obj
<< /Length 39 >>
stream
BT /F1 18 Tf 20 50 Td (Hello PDF) Tj ET
endstream
endobj
5 0 obj
<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica >>
endobj
xref
0 6
0000000000 65535 f
0000000009 00000 n
0000000058 00000 n
0000000115 00000 n
0000000241 00000 n
0000000330 00000 n
trailer
<< /Size 6 /Root 1 0 R >>
startxref
400
%%EOF
Cómo encajan las piezas
- El catálogo
/Rootapunta al árbol de páginas (/Pages), que enumera las páginas (/Kids). - Cada página tiene un
/MediaBox(tamaño en puntos; 72 puntos = 1 pulgada) y/Contents, un flujo comoBT ... ETque fija una fuente, se mueve a una posición y muestra texto. - Los recursos como las fuentes se referencian por nombre (
/F1) y se definen en otro lugar. - Los archivos reales comprimen los flujos (
/Filter /FlateDecode) y guardan muchos objetos juntos en flujos de objetos para ahorrar espacio. - Los metadatos viven en el diccionario
/Infoy, opcionalmente, en XMP; véalos y cámbielos con Editor de Metadatos PDF.
Por qué importa
- Las ediciones pueden guardarse como una actualización incremental: se añaden objetos nuevos y una
xrefnueva, y los antiguos siguen en el archivo. El contenido eliminado o tachado puede seguir siendo recuperable. - La extracción de texto depende de cómo una fuente asigna glifos a caracteres; las páginas escaneadas solo contienen imágenes y necesitan OCR.
- Una
xrefdañada a menudo se reconstruye buscando marcadoresobj, que es como muchos lectores reparan archivos estropeados. - Para comprobar si un documento tiene cambios ocultos, vea Cómo comprobar si un PDF tiene cambios ocultos.