Convertendo PDF para PDF / A?

11

Dado um PDF de origem aleatória, como faço, no Linux:

  • confirmar se já está no formato PDF / A ?
  • se não estiver no formato PDF / A, converta-o para PDF / A com uma perda mínima de fidelidade?

Estou ciente de que a conversão pode causar perda de elementos exóticos do documento, mas vamos supor que a capacidade de abrir o documento em um futuro relativamente distante seja mais importante do que esses recursos esparsos (que podem não estar disponíveis / legíveis em tais documentos). de qualquer maneira). Preferiria confirmar visualmente a precisão da conversão quando conseguir visualizar trivialmente os documentos lado a lado do risco de não poder abrir o arquivo original.

um CVn
fonte

Respostas:

9

Identificação

Encontrei esta ferramenta que parece ser o que você pode usar para identificar arquivos PDF / A. Chama-se DROID (Registro Digital e Identificação de Objeto) . É baseado em Java e pode ser executado a partir de uma GUI ou da linha de comando.

excerto

O DROID é uma ferramenta de software desenvolvida pelo The National Archives para realizar a identificação automatizada de lotes de formatos de arquivo. Desenvolvido por seu Departamento de Preservação Digital como parte de suas atividades mais amplas de preservação digital, o DROID foi projetado para atender aos requisitos fundamentais de qualquer repositório digital, para poder identificar o formato preciso de todos os objetos digitais armazenados e vincular essa identificação a um registro central. de informações técnicas sobre esse formato e suas dependências.

Dado que é patrocinado pelos Arquivos Nacionais, eu diria que é a ferramenta certa para isso, dado o objetivo do formato PDF / A. Além disso, o projeto é de código aberto e o código está disponível no Github , bem como empacotado em formato binário no site do National Archives .

Validação e Conversão

Se você está procurando uma ferramenta para realizar validação e conversão, acredito que o PDFBox possa fazer isso. PDFBox lista a validação de PDF / A na primeira página do site. É outro aplicativo Java 8-).

trecho do site

Validação de PDF / A
Valide PDFs de acordo com o padrão PDF / A ISO.

Na seção de ferramentas da linha de comando, à esquerda da página principal, mostre o seguinte uso da ferramenta:

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

o veraPDF é outra ferramenta capaz de validar PDF / A; faz parte do conjunto de ferramentas de referência da Open Preservation Foundation. É também um aplicativo Java.

Conversão

Para fazer a conversão, encontrei esse método em uma postagem no blog intitulada: Forma gratuita de converter um PDF existente em PDF / A , que usa as seguintes ferramentas:

  • Somente Ghostscript 8.64.
  • PDFBox 0.7.3
  • pdfmarks (arquivo para fornecer metadados adicionais)
  • PDFA_def.ps
  • USWebCoatedSWOP.icc

Com o exposto acima, você usa o seguinte comando:

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

Não é sem verrugas. O artigo discute um deles, sendo um deles a fixação dos sinalizadores de impressão nos hiperlinks. O artigo fornece um aplicativo Java que você pode usar para corrigir estes:

$ java FixPrintFlag Out_PDFA.pdf New_verifiablePDFA.pdf

Não é bonito, mas parece viável. Veja o artigo para mais detalhes.

Referências

slm
fonte
Vou ter que tentar isso - parece muito promissor. Com um pouco de brincadeira, pode até ser possível integrá-lo à impressora CUPS-PDF; existem configurações no /etc/cups/cups-pdf.conf que parecem promissoras para esse fim. Obrigado por reservar um tempo! Não estou realmente testando agora, mas voltarei a isso (espero amanhã).
a CVn
@ MichaelKjörling - obrigado pela pergunta. Eu nunca tinha ouvido falar do formato PDF / A antes e precisamos disso exatamente no trabalho. Então você me ajudou a parecer um gênio por saber sobre essas coisas agora 8-).
slm
O que é pdfmarks?
Andrew Andrew
1

Para identificação do arquivo, o comando filegeralmente é útil. Ele procurará no seu arquivo números mágicos, identificadores de arquivos, informações de codificação etc. para fornecer qualquer informação útil possível.

No caso particular de arquivos PDF, o utilitário pdfinfoé especialmente útil. No meu caso, uma distribuição do Gentoo, é fornecida com poppleruma biblioteca de renderização de PDF.

lgeorget
fonte
1
pdfinfo -metae observar xmpmeta/RDF/Description/conformanceparece dizer se o PDF é PDF / A (esse nó é A) ou não (o nó não existe ou tem algum outro valor). É um começo!
um CVn
0

Aqui está um script de linha de comando do bash fazendo exatamente isso:

#!/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

Salve-o em um arquivo chamado pdf2pdfa.sh que esteja no seu caminho e chame-o assim:

pdf2pdfa.sh input.pdf

Isso criará input_a.pdf.

daruma
fonte
1
(1) Por favor, explique o que isso faz. (2) o que é input? Entendo pdf_input, mas o que é input? (3) Você deve sempre citar variáveis ​​do shell, a menos que tenha um bom motivo para não fazê-lo , e tem certeza de que sabe o que está fazendo. Por favor, não responda nos comentários; edite  sua resposta para torná-la mais clara e completa.
G-Man diz 'Reinstate Monica'