Conversione da PDF a PDF / A?


11

Dato un PDF di origine casuale, come posso fare, su Linux:

  • confermare se è già in formato PDF / A ?
  • se non è in formato PDF / A, convertirlo in PDF / A con una perdita di fedeltà minima?

Sono consapevole che la conversione può causare la perdita di elementi esotici del documento, ma supponiamo che la possibilità di aprire il documento in un futuro relativamente lontano sia più importante di tali caratteristiche spiffy (che potrebbero non essere disponibili / leggibili in tali una volta comunque). Preferirei essere in grado di confermare visivamente l'accuratezza della conversione quando posso visualizzare banalmente i documenti fianco a fianco piuttosto che rischiare di non essere in grado di aprire il file originale.

Risposte:


9

Identificazione

Ho trovato questo strumento che sembra essere quello che puoi usare per identificare i file PDF / A. Si chiama DROID (Digital Record and Object Identification) . È basato su Java e può essere eseguito da una GUI o dalla riga di comando.

estratto

DROID è uno strumento software sviluppato da The National Archives per eseguire l'identificazione batch automatizzata dei formati di file. Sviluppato dal suo dipartimento di conservazione digitale come parte delle sue più ampie attività di conservazione digitale, DROID è progettato per soddisfare i requisiti fondamentali di qualsiasi archivio digitale per essere in grado di identificare il formato preciso di tutti gli oggetti digitali archiviati e collegare tale identificazione a un registro centrale di informazioni tecniche su quel formato e le sue dipendenze.

Dato che è sponsorizzato dall'Archivio Nazionale, suppongo che sia lo strumento giusto per farlo, dato lo scopo previsto del formato PDF / A. Anche il progetto è open source e il codice è disponibile su Github e confezionato in forma binaria dal sito web degli Archivi nazionali .

Convalida e conversione

Se stai cercando uno strumento per eseguire la convalida e la conversione, credo che PDFBox possa farlo. PDFBox elenca la convalida PDF / A direttamente sulla prima pagina del loro sito Web. È un'altra applicazione Java Cool.

estratto dal sito web

Convalida PDF / A
Convalida PDF in base allo standard PDF / A ISO.

Nella sezione degli strumenti da riga di comando a sinistra della loro pagina principale viene mostrato il seguente utilizzo per lo strumento:

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

veraPDF è un altro strumento in grado di convalidare PDF / A; fa parte del set di strumenti di riferimento della Open Preservation Foundation. È anche un'applicazione Java.

Conversione

Per fare solo la conversione ho trovato questo metodo da un post sul blog intitolato: Modo gratuito per convertire un PDF esistente in PDF / A , che utilizza i seguenti strumenti:

  • Solo Ghostscript 8.64.
  • PDFBox 0.7.3
  • pdfmarks (file per fornire metadati aggiuntivi)
  • PDFA_def.ps
  • USWebCoatedSWOP.icc

Con quanto sopra in atto si utilizza il seguente comando:

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

Non è senza le sue verruche. L'articolo ne discute uno, fissando le bandiere di stampa sui collegamenti ipertestuali come uno di essi. L'articolo fornisce un'applicazione Java che è possibile utilizzare per correggere questi:

$ java FixPrintFlag Out_PDFA.pdf New_verifiablePDFA.pdf

Non è carino ma sembra fattibile. Vedi l' articolo per maggiori dettagli.

Riferimenti


Dovrò provarlo: sembra terribilmente promettente. Con un po 'di confusione potrebbe anche essere possibile integrare questo nella stampante CUPS-PDF; ci sono impostazioni in /etc/cups/cups-pdf.conf che sembrano promettenti a tale scopo. Grazie per aver dedicato del tempo! Non ho davvero intenzione di provarlo adesso, ma tornerò su questo (speriamo domani).
un CVn

@ MichaelKjörling - grazie per la domanda. Non avevo mai sentito parlare del formato PDF / A prima e abbiamo bisogno di questa cosa esatta al lavoro. Quindi mi hai aiutato a sembrare un genio per sapere queste cose ora Cool.
slm

Cosa pdfmarks?
Andrew,


1

Per l'identificazione del file, il comando fileè spesso utile. Cercherà nel tuo file numeri magici, identificatori di file, informazioni di codifica, ecc. Per fornire tutte le informazioni utili che può.

Nel caso particolare dei file PDF, l' pdfinfoutilità è particolarmente utile. Nel mio caso, una distribuzione Gentoo, è fornita con poppleruna libreria di rendering PDF.


1
pdfinfo -metae guardare xmpmeta/RDF/Description/conformancesembra dire se il PDF è PDF / A (quel nodo lo è A) oppure no (il nodo non esiste o ha qualche altro valore). È un inizio!
un CVn

0

Ecco uno script da riga di comando bash che fa proprio questo:

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

Salvalo in un file chiamato pdf2pdfa.sh che si trova nel tuo percorso, quindi chiamalo così:

pdf2pdfa.sh input.pdf

Creerà input_a.pdf.


1
(1) Per favore, spiega cosa fa questo. (2) Che cos'è input? Vedo pdf_input, ma cos'è input? (3) Dovresti sempre citare le variabili della shell a meno che tu non abbia una buona ragione per non farlo, e sei sicuro di sapere cosa stai facendo. Si prega di non rispondere nei commenti; modifica la  tua risposta per renderla più chiara e completa.
G-Man dice "Reinstate Monica" il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.