c++ c pdf specifications

c++ - Especificaciones de PDF para codificadores: ¿Adobe o ISO?



specifications (2)

Quiero codificar una aplicación que puede leer y decodificar un documento PDF; ahora donde se supone que debo obtener las especificaciones para este formato de archivo? El formato PDF está estandarizado del grupo ISO, pero no está claro para mí cuál es la fuente más confiable para obtener este tipo de información.

¿Cuál es una buena fuente para comenzar con este formato de archivo?


PDF no es un formato ligero. Básicamente es postscript con compresión en la parte superior. Una biblioteca existente es definitivamente lo que desea usar, no escribir la suya propia. Es una gran tarea.

O bien, obtenga una aplicación de escritor de PDF existente e iníciela desde su programa.

No lo he mirado mucho, pero libgnupdf ve bien.

Según Wikipedia PDF combina tres tecnologías:

  • Un subconjunto del lenguaje de programación de descripción de página PostScript, para generar el diseño y los gráficos.
  • Un sistema de inserción / sustitución de fuentes para permitir que las fuentes viajen con los documentos.
  • Un sistema de almacenamiento estructurado para agrupar estos elementos y cualquier contenido asociado en un único archivo, con compresión de datos cuando corresponda.

Puedes usar las dos fuentes que mencionaste; la confusión es histórica

Adobe inventó PDF e inventó la familia de productos Acrobat para usar junto con él. Las diferentes versiones en PDF se lanzaron junto con las principales versiones de Acrobat (por ejemplo, PDF 1.3 se lanzó junto con Acrobat 4).

Debido a la adopción del formato PDF y debido a que se escribieron varios estándares ISO que realmente dependían del formato de archivo PDF propietario (algo nada fácil para un estándar ISO), Adobe decidió entregar el formato PDF a ISO.

A partir de ese momento y hasta el día de hoy, existe un comité ISO responsable de editar la especificación PDF y crear nuevas versiones. El estándar ISO para PDF es ISO 32000.

Además, tenga en cuenta que, dependiendo de dónde desee usar el PDF, otras normas ISO pueden ser muy útiles o indispensables. Entre los más utilizados se encuentran PDF / X (para el intercambio de archivos PDF en la comunidad editorial) y PDF / A (para la creación de archivos PDF que deben archivarse en el almacenamiento a largo plazo). Estas especificaciones hacen referencia a una versión específica del estándar PDF y añaden requisitos y restricciones adicionales.

En lo que respecta a la especificación, puede obtener todos los documentos de la ISO directamente. Sin embargo, para el PDF en sí mismo también puede obtenerlo de Adobe y ese documento será idéntico. Consulte el sitio de Adobe DevNet en Acrobat:

http://www.adobe.com/devnet/acrobat.html

Simplemente descargue el SDK de Acrobat y eso le proporcionará la documentación como parte de este.

Permítanme agregar una palabra de advertencia sobre "orientar la especificación PDF" en el código. Realmente, realmente, le aconsejo que especifique con mayor precisión cuáles son sus necesidades de PDF (edición, generación, control de calidad (verificación previa)) y luego busque o pregunte sobre una biblioteca existente que satisfaga esas necesidades o que pueda ampliarse para cumplir tus necesidades.

Escribir algo que sea compatible con "PDF" en general será una tarea desalentadora. La especificación PDF es grande, compleja y está llena de ... bueno ... detalles. ¡Hay dragones!

Actualizar:

Enlace directo al documento de especificación PDF-1.7 de Adobe (la primera edición, de descarga gratuita, está aquí:

El contenido de este documento más tarde se convirtió oficialmente en el estándar ISO para PDF general, ISO 32000-1.

Sin embargo, tenga en cuenta que existen algunas diferencias con el archivo PDF disponible de ISO:

  • El diseño de la página cambió, en comparación con la versión de Adobe.
  • Los documentos ISO no están disponibles de forma gratuita (este le cuesta en francos suizos CHF 238.- para descargar).

Si comienza a desarrollar software PDF, es suficiente tener un PDF (gratuito) desde arriba. Enlace de Adobe alrededor.