Convertire un PDF colorato in bianco / nero

Su Debian Sid, ho un PDF con background blu e carattere giallo. Ho cercato molto su Super User ma non ho trovato niente utile per me.

Ho provato a convertire il PDF in una scala di grigi con:

gs -o grayscale.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -sProcessColorModel=DeviceGray -dCompatibilityLevel=1.4 colored.pdf 

Il problema è che ottengo un PDF con font bianco e background grigio scuro, così non riesco a printingrlo.

Dopo di che ho provato:

 convert -density 96x96 gs2.pdf -density 96x96 -negate -compress zip inv.pdf 

Ho ottenuto un PDF con caratteri neri (e questo è giusto) e background grigio (e questo non va bene).

Cosa posso fare per get un PDF con background bianco e caratteri neri?

AVVERTENZA GENERALE !!! lavorare su una COPIA del tuo FILE !!!

(quindi puoi avere la seconda possibilità se hai commesso errori)

lo background di vector pdf (che non significa image raster ) in file pdf può essere facilmente modificato in un paio di passaggi (vedere anche la mia risposta stackoverflow che ora mi estenderò e migliorerò


  • CONTROLLO PRELIMINARE :

apri il tuo file pdf con un editor in grado di mostrare la struttura interna del pdf, come

notepad ++

e verificare se è ansible vedere frammenti di codice come

1.000 1.000 0.000 rg (significa giallo )

0.000 0.000 1.000 rg (significa blu se il blu è il blu puro con tripletto RGB 0, 0, 255, altrimenti leggere il resto della risposta per identificare il tripletto corretto nel codice pdf )

e così via…

(lo snippet di codice può cambiare, ad esempio, in formato PDF prodotto dalla function di esportzione pdf di openoffice interno, gli stessi snippepts di codice sono in queste forms:

 0 0 0 rg (it means *black*) 1 1 1 rg (it means *white*) 

e così via…

se riesci a vedere questi frammenti di codice, puoi iniziare a modificare i valori, altrimenti devi decomprimere i flussi di text

è ansible eseguire questa attività con

pdftk

http://www.pdflabs.com/docs/install-pdftk/

 pdftk file.pdf output uncompressed.pdf uncompress 

e ricompressione dopo i cambiamenti finiti

 pdftk uncompressed.pdf output recompressed.pdf compress 

ora, se vedi questi frammenti di codice, puoi modificare i valori

PASSO 1 (per l'editing pdf) –

la prima cosa di cui hai bisogno è trovare la giusta equivalenza tra i valori di colore RGB del text e lo background e la rappresentazione interna dei colors dello stesso colore

è ansible utilizzare un raccoglitore di colors gratuito come questi

per identificare i valori di rgb del text e dei colors di background

una volta che hai questi valori, devi trasformare in una speciale rappresentazione pdf interna

per fare questo prendiamo in mente questa proporzione:

1: 255 = x: colore selezionato

per esempio: diciamo di avere questo tripletto RGB per lo background: 30.144.255

rgb triplette blu

conoscere i valori corrispondenti in pdf per inserire nel frammento di codice per cambiare il colore di background pdf, è ansible: (è ansible utilizzare http://www.wolframalpha.com/ per calcolare con precisione)

 1:255=x:30 = 30/255 = 0.117 (approximated to first three decimals) 1:255=x:144 = 144/255 = 0.564 (approximated to first three decimals) 1:255=x:255 = 255/255 = 1 

così, l'integer tripletto in pdf, corrispondente a RGB 30,144,255 , sarà:

0.117 0.564 1.000


# PASSO 2 (per l'editing pdf)

cerchiamo 0.117 0.564 1.000 in file pdf con notepad ++ ( avvolgere e corrispondere una sola parola necessaria solo per essere controllata) e abbiamo trovato la rappresentazione pdf interna dello background e possiamo cambiare da azure a, diciamo, bianco

1.000 1.000 1.000

o

1 1 1

ma, dal momento che hai scritto di background blu , per essere più preciso, ho creato un pdf di esempio con background blu ( puro blu 0,0,255 RGB – se hai blu modificato tonalità diversa secondo i miei suggerimenti) e text giallo

dato che sappiamo che 0.000 0.000 1.000 rg significa blu , cerchiamo questo e possiamo cambiare da 0.000 0.000 1.000 rg a 1.000 1.000 rg (bianco) MA …

allo stesso tempo, si cambia anche il text dal giallo al nero

cercando 1.000 1.000 0.000 (text giallo) e cambiare in nero 0.000 0.000 0.000

e ora abbiamo un pdf vettoriale con text nero e background bianco

per favore, ricorda

    • comprimere nuovamente questo pdf modificato se non compresso con pdftk
    • riparazione
 pdftk file.pdf output fixed.pdf 

c'è un altro modo, a partire da postscript, per eseguire la stessa attività, ma dato che hai già il file PDF , la conversione in postscript per eseguire l'attività simile sarebbe un passo superfluo

dare un feedback, per favore, e sentitevi liberi di chiedere di più