¿Convertir PDF a PDF / A?

11

Dado un PDF de origen aleatorio, ¿cómo lo hago en Linux?

  • confirmar si ya está en formato PDF / A ?
  • Si no está en formato PDF / A, ¿convertirlo a PDF / A con una pérdida mínima de fidelidad?

Soy consciente de que la conversión puede causar la pérdida de elementos exóticos del documento, pero supongamos que la capacidad de abrir el documento en un futuro relativamente lejano es más importante que las características tan sofisticadas (que podrían no estar disponibles / legibles en tales casos). un tiempo de todos modos). Prefiero poder confirmar visualmente la precisión de la conversión cuando puedo ver trivialmente los documentos uno al lado del otro que arriesgarme a no poder abrir el archivo original.

un CVn
fuente

Respuestas:

9

Identificación

Encontré esta herramienta que parece ser lo que puede usar para identificar archivos PDF / A. Se llama DROID (registro digital e identificación de objetos) . Está basado en Java y se puede ejecutar desde una GUI o la línea de comandos.

extracto

DROID es una herramienta de software desarrollada por The National Archives para realizar la identificación automatizada de lotes de formatos de archivo. Desarrollado por su Departamento de Preservación Digital como parte de sus actividades de preservación digital más amplias, DROID está diseñado para cumplir con los requisitos fundamentales de cualquier repositorio digital para poder identificar el formato preciso de todos los objetos digitales almacenados y vincular esa identificación a un registro central. de información técnica sobre ese formato y sus dependencias.

Dado que está patrocinado por los Archivos Nacionales, supongo que es la herramienta adecuada para hacerlo, dado el propósito previsto del formato PDF / A. Además, el proyecto es de código abierto y el código está disponible en Github , así como empaquetado en forma binaria desde el sitio web de los Archivos Nacionales .

Validación y Conversión

Si está buscando una herramienta para realizar la validación y conversión, creo que PDFBox puede hacer esto. PDFBox enumera la validación PDF / A directamente en la página principal de su sitio web. Es otra aplicación Java 8-).

extracto del sitio web

Validación de PDF / A
Valide los PDF contra el estándar PDF / A ISO.

En la sección de herramientas de línea de comandos a la izquierda de su página principal, muestra el siguiente uso de la herramienta:

$ java -jar pdfbox-app-x.y.z.jar org.apache.pdfbox.ConvertColorspace [OPTIONS] <inputfile> <outputfile>

veraPDF es otra herramienta capaz de validar PDF / A; Es parte del conjunto de herramientas de referencia de la Open Preservation Foundation. También es una aplicación Java.

Conversión

Para hacer la conversión, encontré este método en una publicación del blog titulada: forma gratuita de convertir un PDF existente a PDF / A , que utiliza las siguientes herramientas:

  • Ghostscript 8.64 solamente.
  • PDFBox 0.7.3
  • pdfmarks (archivo para suministrar metadatos adicionales)
  • PDFA_def.ps
  • USWebCoatedSWOP.icc

Con lo anterior en su lugar, utiliza el siguiente comando:

$ gs -sDEVICE=pdfwrite -q -dNOPAUSE -dBATCH -dNOSAFER     \
-dPDFA -dUseCIEColor -sProcessColorModel=DeviceCMYK       \
-sOutputFile=Out_PDFA.pdf PDFA_def.ps pdfmarks IN_PDF.pdf

No es sin sus verrugas. El artículo analiza uno de ellos, arreglando las banderas de impresión en hipervínculos siendo uno de ellos. El artículo proporciona una aplicación Java que puede usar para solucionar estos problemas:

$ java FixPrintFlag Out_PDFA.pdf New_verifiablePDFA.pdf

No es bonito, pero parece ser viable. Vea el artículo para más detalles.

Referencias

slm
fuente
Voy a tener que probar esto, parece muy prometedor. Con un poco de violín, incluso podría ser posible integrar esto en la impresora CUPS-PDF; hay configuraciones en /etc/cups/cups-pdf.conf que parecen prometedoras para ese propósito. ¡Gracias por tomarse el tiempo! No estoy realmente dispuesto a probarlo en este momento, pero volveré a esto (espero que mañana).
un CVn
@ MichaelKjörling: gracias por la pregunta. Nunca antes había escuchado sobre el formato PDF / A y tenemos una necesidad de esto exactamente en el trabajo. Entonces me ayudaste a parecer un genio por saber sobre estas cosas ahora 8-).
slm
¿Qué es pdfmarks?
Andrew
1

Para la identificación de archivos, el comando a filemenudo es útil. Buscará en su archivo números mágicos, identificadores de archivo, información de codificación, etc. para brindarle toda la información útil que pueda.

En el caso particular de los archivos PDF, el utilitario pdfinfoes especialmente útil. En mi caso, una distribución de Gentoo está empaquetada con poppleruna biblioteca de representación de PDF.

lgeorget
fuente
1
pdfinfo -metay mirar xmpmeta/RDF/Description/conformanceparece decir si el PDF es PDF / A (ese nodo es A) o no (el nodo no existe o tiene algún otro valor). ¡Es un comienzo!
un CVn
0

Aquí hay un script de línea de comando bash que hace exactamente eso:

#!/bin/bash

pdf_input=$1
ps_output=${pdf_input%.*}.ps
pdfa_output=${pdf_input%.*}_a.pdf
pdftops $input $ps_output

gs -dPDFA -dBATCH -dNOPAUSE -dNOOUTERSAVE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=$pdfa_output $ps_output

Guárdelo en un archivo llamado pdf2pdfa.sh que está en su ruta, luego llámelo de esta manera:

pdf2pdfa.sh input.pdf

Creará input_a.pdf.

daruma
fuente
1
(1) Por favor explique qué hace esto. (2) ¿Qué es input? Ya veo pdf_input, pero ¿qué es input? (3) Siempre debe citar variables de shell a menos que tenga una buena razón para no hacerlo y esté seguro de saber lo que está haciendo. Por favor no responda en los comentarios; edite  su respuesta para que sea más clara y completa.
G-Man dice 'reinstalar a Monica' el