¿Qué es un archivo PDF? | Base de conocimientos
Introducción
Como ya sabe por el artículo sobre “PDL”, PDF es un lenguaje de descripción de páginas estático que tiene una estructura estricta e inmutable.
PDF es uno de los lenguajes de descripción de páginas más populares, si no, debido a una gran variedad de características que los desarrolladores de Adobe agregaron a su especificación. Además, Adobe también proporciona a las personas herramientas capaces de implementar estas funciones en los documentos. Este artículo es una breve revisión de la sintaxis, estructura y características de PDF.
¿Qué es un archivo PDF?
El objetivo inicial del desarrollo de PDF o formato de documento portátil abreviado era crear un formato de documento que cumpliera numerosos requisitos de intercambio de documentos digitales en entornos independientes del dispositivo y de la resolución. Estos requisitos incluyen vista interactiva, navegación de alto rendimiento, baja ocupación de espacio en disco, trabajo conjunto en documentos, soporte para diferentes contenidos multimedia, cifrado, firma, creación de formularios, presentación, etc. A pesar de la intención inicial de proporcionar a las empresas un formato completo para el intercambio de documentos digitales, también se agregaron a la especificación funciones de impresión de alta calidad, aunque más tarde.
Sintaxis del archivo PDF
PDF tiene un modelo de imagen derivado del de PostScript, también usa 1-2 caracteres, operadores largos, así como en formato AI, y también tiene sintaxis BNF postfix, donde todos los operandos necesarios van antes del operador.
operand1...operandm operator |
Además de la longitud del operador, existen algunas diferencias entre los operadores PDF y PostScript. En PDF, todos los operandos necesarios deben preceder a los operadores, mientras que en Postscript los operandos se obtienen de la pila PostScript. En PDF, el operador no devuelve un resultado como puede ocurrir en PostScript. El operador de PDF ejecuta alguna acción para componer una página, por ejemplo, dibujar gráficos o texto o establece alguna propiedad en un entorno gráfico. En PostScript, los operadores hacen todo el trabajo.
Por lo general, la mayor parte del contenido de los archivos PDF se comprime con codificación Flate y, de esta manera, es binario. Además de la compresión, los archivos PDF también se pueden cifrar para limitar el acceso al contenido del documento. Por lo tanto, todo el archivo debe tratarse como binario. Sólo en el caso de que un archivo PDF no esté comprimido ni cifrado y no contenga contenido binario, como imágenes, sonido, vídeo, etc., puede considerarse textual.
Objetos de especificación PDF
En la especificación PDF objeto es sinónimo de tipo, mientras que en PostScript hay tipos que pueden ser primitivos y complejos y los últimos pueden denominarse “objetos”. Por lo tanto, todos los tipos de PDF, ya sean simples o complejos, son objetos. El lenguaje PDF consta de valores booleanos, números enteros, números reales, nombres, cadenas, matrices, diccionarios y secuencias. Las cadenas pueden estar en formato literal o hexadecimal como se muestra a continuación.
( This is a string )<4E6F762073686D6F7A206B6120706F702E> | literal formathexadecimal format |
Las matrices están delimitadas por corchetes. Incluye un subtipo Rectángulo - matriz con 4 elementos.
Los diccionarios almacenan los datos en pares clave-valor donde la clave es un nombre o cadena (para el diccionario de nombres) y el valor es un objeto o una referencia de objeto. Está encerrado entre soportes de doble ángulo. Los diccionarios tienen un campo Tipo que muestra qué datos se almacenan en un diccionario determinado.
<< /Type /Example /Subtype /DictionaryExample /Version 0 . 01 /IntegerItem 12 /StringItem ( a string ) /Subdictionary << /Item1 0 . 4 /Item2 true /LastItem ( not ! ) /VeryLastItem ( OK ) >>>>endobj |
Los objetos pueden ser directos e indirectos. Los objetos indirectos son aquellos a los que otros objetos pueden hacer referencia mediante su ID.
Los flujos son objetos que normalmente contienen datos binarios o codificados. Son ilegibles para los humanos y no tienen limitaciones de longitud. Por lo general, las secuencias de archivos PDF contienen contenido de página comprimido o imágenes o algún otro medio. El objeto Stream consta de un diccionario directo con la longitud de la transmisión y una serie de filtros utilizados para codificar la transmisión, y datos codificados después de la palabra clave stream.
181 0 obj << /Length 473 0 R /Subtype /Image /Width 2 /Height 19 /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter [/ASCII85Decode /FlateDecode] >>streamGb"[2*s<F2i'/7_!,1%/hZ~>endstreamendobj |
Operadores de PDF
Los operadores son una especie de objetos directos que crean gráficos de páginas y, como mencionamos anteriormente, están representados por palabras clave de 1 o 2 letras. Hay dos tipos de operadores PDF:
* ejecutar acciones o configurar propiedades del estado de los gráficos.
PDF operator x y mx y lx1 y1 x2 y2 x3 y3 chx y width height rea b c d e f cmSsfFWfont size TfcharSpace TcqQlineWidth wlineCap JTamaño de fuente TfcharSpace Tc | Descripción comenzar un nuevo subtrayecto moviendo el punto actual a las coordenadas (x, y)agregar un segmento de línea recta desde el punto actual hasta el punto (x, y)agregar una curva de Bézier cúbica al trazado actualcerrar el subtrayecto actualagregar un rectángulo al trazado actualmodificar la matriz de transformación actual concatenando la matriz especificadatrazar el trazadoel mismo, pero cerca del trazadorellenar el trazadoel mismo, pero cerca del trazadomodificar el trazado de recorte actual intersecándolo con el trazado actualEstablezca la fuente del texto en font y el tamaño de la fuente del texto en sizeEstablezca el espaciado entre caracteres en charSpaceGuarde el estado actual de los gráficos en la pila de estado de gráficosRestaure el estado de los gráficos desde la pila de estado de gráficosEstablezca el ancho de línea en el estado de gráficosEstablezca el estilo de límite de línea en el estado de gráficosEstablezca la fuente del texto en font y el tamaño de la fuente del texto en sizeEstablezca el espaciado entre caracteres en charSpace |
* agrupación
PDF operator BT...ETBI...EIBMC...EMCBX...EX | Descripción comenzar y finalizar un objeto de textocomenzar y finalizar un objeto de imagencomenzar y finalizar una secuencia de contenido marcadocomenzar y finalizar una sección de compatibilidad |
Los tipos especiales de operadores de agrupación son BX…EX. Encierran partes del contenido de la página donde se deben ignorar los objetos no identificados. Por lo tanto, son equivalentes a los pseudocomentarios %_ de IA.
Estructura del archivo PDF
El archivo PDF tiene cuatro elementos estructurales obligatorios.
- Encabezado de una línea, donde está escrita la versión del idioma PDF.
%PDF-1.5 |
Cuerpo que contiene los objetos del documento. La estructura del cuerpo se describirá más adelante en este artículo.
Tabla de referencias cruzadas. Se utiliza para un acceso aleatorio rápido a los objetos del documento. Contiene un desplazamiento en bytes hasta el comienzo de los objetos desde el inicio del archivo.
xref0 60000000003 65535 f0000000017 00000 n0000000081 00000 n0000000000 00007 f0000000331 00000 n0000000409 00000 n |
- Trailer, apunta a la última tabla de referencias cruzadas y contiene una cantidad común de objetos en las tablas de referencias cruzadas, El DNI del documento y las referencias a:
- tabla de referencias cruzadas anteriores si el expediente contiene varias;
- Raíz del documento representado por el diccionario del catálogo;
- Diccionario de metainformación con campos de Autor, Creador, Título, Palabras clave, fecha de creación y modificación;
- Diccionario de cifrado si el documento está cifrado.
trailer << /Size 15 /Root 2 0 R /Info 1 0 R >>startxref6224 |
Después de cada actualización del documento se agrega una nueva tabla de referencias cruzadas y un avance. Se describirá más adelante en el artículo.
Estructura del documento
El documento PDF tiene una estructura en forma de árbol donde la raíz es un diccionario de catálogo.
El catálogo contiene referencias en el subárbol de descripción de páginas, el subárbol de esquema y otros subárboles a nivel de documento y nodos de hoja.
2 0 obj << /Type /Catalog /Pages 3 0 R /Outlines 4 0 R /PageMode /UseOutlines /ViewerPreferences 5 0 R /OpenAction [6 0 R /Fit] >>endobj |
El árbol de páginas contiene el orden de los nodos del árbol de páginas y de las hojas de página. La estructura exactamente en forma de árbol de un conjunto de páginas junto con el algoritmo de búsqueda permite una navegación rápida a través de miles de páginas para encontrar la que necesita.
El diccionario de páginas contiene referencias sobre el flujo de contenido que se puede comprimir como se muestra en la figura anterior o sin comprimir. En el último caso, veríamos operadores PDF en texto legible por humanos como se muestra en la siguiente figura.
7 0 obj << /Length 8 0 R >>stream1 0 0 1 0 0 cm0 0 m595 0 l595 842 l0 842 lhWnq/Alpha1 gs0 0 0 rg0 0 0 RG0 Jq0.96593 0.25882 -0.25882 0.96593 0 0 cm1 0 0 1 0 0.25882 cm0.02 w-0.96593 0 m0 -0.25882 l0 -0.25882 0 -0.25882 0 -0.25882 c0.14294 -0.25882 0.25882 -0.14294 0.25882 0 c0.25882 0.14294 0.14294 0.25882 0 0.25882 chSQendstreamendobj |
Además de una serie de páginas de nodos secundarios (pueden ser páginas de árbol o nodos de página), el diccionario contiene referencias al diccionario de recursos, que a su vez hace referencia a fuentes, conjuntos de procesos, imágenes (XObject), etc.
9 0 obj << /ProcSet 10 0 R /XObject 11 0 R /Font 12 0 R /ExtGState 13 0 R >>endobj |
Las anotaciones y otros subárboles se mencionarán casualmente en la sección Funciones.
Características
Posibilidades gráficas del formato PDF.
No tiene sentido mencionar las posibilidades comunes a la mayoría de los lenguajes de descripción de páginas al dibujar gráficos y texto. Simplemente decimos que la riqueza de fuentes y espacios de color admitidos es la misma que en PostScript.
Fonts - Adobe Type 0- Adobe Type 1- Compact Fonts (CFF)- Chameleon- TrueType- CID-keyed | Color spaces - DeviceGray- DeviceRGB- DeviceCMYK- DeviceN- Separated colors- Spot- CIE-based |
Transparencia
PDF admite transparencia.
Archivos externos
Cualquier archivo multimedia o documento se puede incrustar en PDF o consultar desde un documento.
Hipervínculos
Los hipervínculos son compatibles con PDF.
Vista electoral e interactiva
PDF permite mostrar sólo partes del contenido y su apariencia que son necesarias para determinado uso y ocultar las demás. Es útil, por ejemplo, al importar gráficos de Adobe Illustrator que tienen capas, algunas de las cuales son necesarias para trabajar en Adobe Illustrator, pero no son necesarias para visualizarlas en Adobe Acrobat Reader. Otro caso de visión electoral puede ser un artículo escrito en diferentes idiomas o representado para usuarios con discapacidad pero guardado en un solo documento. También puede haber diferentes variantes de uso: una vista para ver, diseñar e imprimir.
Una vista interactiva de PDF incluye capacidades:
- para ver/añadir anotaciones a partes de documentos;
- editar el documento con la posibilidad de ver todas las ediciones;
- ordenar el contenido del documento en diferentes hilos de artículos reunidos por determinadas materias.
La anotación es una especie de cuadro flotante que contiene algunas notas, sonido, vídeo o algún otro contenido.
Navegación interactiva
La navegación entre diferentes partes de los documentos se puede realizar de varias maneras:
- desplazarse por el documento desde el inicio hasta la página necesaria consecutivamente, página por página;
- saltar de una parte del documento a otra con elementos de esquema;
- saltar de una página a otra haciendo clic en las imágenes en miniatura;
- saltar de una parte del documento a otra con elementos del hilo del artículo;
- saltar de una parte del documento a otra usando ventanas gráficas y moverse entre ellas presionando
.
El movimiento por las ventanas gráficas y la ocultación de algunas partes del documento se realiza mediante los diccionarios Viewport y NavigationNode.
Actualizaciones incrementales
Todos los cambios realizados en el documento PDF se adjuntan al documento sin borrar el contenido anterior. Y cada vez que se modifican los documentos se añaden nuevos xref (tabla de referencias cruzadas) y trailer. La nueva tabla de referencias cruzadas contiene referencias sobre objetos agregados o eliminados y sobre la tabla de referencias cruzadas anterior. Dicho mecanismo permite reunir el contenido final del documento y, al mismo tiempo, almacenar estados anteriores del documento.
Actuación
La estructura en forma de árbol de las páginas y su eficaz algoritmo de búsqueda proporcionan un alto rendimiento en la navegación por las páginas. Sin embargo, se puede aumentar aún más combinando elementos gráficos repetitivos en un objeto, llamado Form XObject y usando un objeto en todos los lugares necesarios. También existe una forma de optimizar todo el documento para obtener una vista de alto rendimiento. Es linealización. La linealización se inventó inicialmente para la visualización efectiva de documentos PDF a los que se accede a través de la web. El documento PDF linealizado es de solo lectura; cualquier cambio en este requerirá una linealización repetida.
El alto rendimiento de la navegación entre objetos de documentos se logra mediante tablas de referencias cruzadas que almacenan desplazamientos de objetos desde el inicio del archivo.
Compresión
La compresión de documentos PDF, generalmente codificación plana, permite la creación de documentos grandes con una ocupación de espacio en disco relativamente baja. Por ejemplo, el archivo de especificación PDF que contiene 758 páginas con un esquema, miniaturas, imágenes y tablas tiene un tamaño de aproximadamente 9 Mb.
Seguridad
Los documentos PDF se pueden cifrar para dar acceso diferenciado sólo a determinados usuarios y se pueden firmar. La función de firma digital permite autenticar la identidad del usuario y el contenido del documento. La firma digital vincula el estado del documento cuando se firma con la información del usuario. La firma digital puede tener cualquier forma: desde puramente matemático hasta escaneo de retina si se proporciona el controlador de firma correspondiente.
Formularios interactivos
Se utiliza para recopilar información de los usuarios. Los formularios interactivos, o los llamados AcroForms, pueden validar, formatear y enviar datos del usuario a un servidor.
Presentación
Existen varios medios de presentación en PDF:
- acciones que se ejecutan cuando se abre el documento;
- acciones que se ejecutan cuando se abre la página;
- duración de mostrar una página;
- efectos que aparecen al pasar de una página a otra.
Contenido multimedia
Se pueden agregar imágenes, sonidos, clips de películas y gráficos 3D a los documentos PDF.
Datos de extracción
PDF permite agregar ciertas marcas que brindan a las aplicaciones externas la posibilidad de extraer los datos necesarios. El documento con dicho marcado se denomina PDF etiquetado.
Soporte de preimpresión
La preparación para la publicación incluye marcas de imprenta, separación de colores, intenciones de salida y solapado.
¿Para qué sirve un archivo PDF?
La principal aplicación de los documentos PDF es el intercambio y visualización de documentos electrónicos en diferentes entornos.
¿Cómo hago un archivo PDF?
La creación y edición de documentos PDF es posible en aplicaciones independientes de Adobe Acrobat.
¿Cómo abro un archivo PDF?
Puede abrir y ver archivos PDF en la aplicación independiente Adobe Acrobat Reader o en el navegador Google Chrome con el complemento PDF. También te ayudarán utilidades sencillas como Sumatra PDF, Foxit Reader o Free PDFReader. Otra forma es ver PDF en línea, por ejemplo, en Google Drive.