Converti un PDF colorato in bianco / nero


4

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

Ho provato a convertire il PDF in 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 caratteri bianchi e sfondo grigio scuro, quindi non posso stamparlo.

Successivamente ho provato:

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

Ho un PDF con caratteri neri (e questo va bene) e uno sfondo grigio (e questo non va bene).

Cosa posso fare per ottenere un PDF con sfondo bianco e caratteri neri?


Se non c'è molta grafica, puoi creare un nuovo pdf con tutto il testo.
Ankit

@Lamb come posso farlo ??
polslinux,

Forse puoi rendere l'output di Ghostscript un PDF in bianco e nero, anziché in scala di grigi? Quindi potresti invertire quello.
un CVn

ci ho pensato, ma non ho idea di come farlo xD @ MichaelKjörling
polslinux,

guarda anche questa domanda superuser.com/questions/200378/…
akostadinov

Risposte:


6

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

(quindi puoi avere una seconda possibilità se hai fatto errori)

lo sfondo pdf vettoriale (che non significa immagine raster ) nei file pdf può essere facilmente modificato in un paio di passaggi (vedi anche la mia risposta StackOverflow che ora 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 verifica se riesci a visualizzare frammenti di codice come

1.000 1.000 0.000 rg (significa giallo )

0.000 0.000 1.000 rg (significa blu se il tuo blu è il blu puro con tripletta RGB 0, 0, 255, altrimenti leggi il resto della risposta per identificare la tripletta giusta nel codice pdf )

e così via...

(lo snippet di codice può cambiare, ad esempio, in pdf prodotto dalla funzione di esportazione pdf interna di openoffice, gli stessi frammenti di codice sono in queste forme:

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 testo

è possibile eseguire questa attività con

pdftk

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

pdftk file.pdf output uncompressed.pdf uncompress

e ricomprimere dopo aver completato le modifiche

pdftk uncompressed.pdf output recompressed.pdf compress

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

PASSAGGIO 1 (per la modifica di pdf) -

la prima cosa di cui hai bisogno è trovare la giusta equivalenza tra i valori di colore RGB del testo e dello sfondo e la rappresentazione pdf interna degli stessi colori

puoi usare un selettore di colori gratuito come questi

per identificare i valori rgb del testo e dei colori di sfondo

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

per fare questo, penso a questa proporzione:

1: 255 = x: colore selezionato

per esempio: supponiamo che tu abbia questa tripletta RGB per lo sfondo: 30.144.255

tripla rgb blu

per conoscere i valori corrispondenti in pdf per inserire nello snippet di codice per cambiare il colore di sfondo del pdf, fai: (puoi usare 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

quindi, l'intera tripletta in pdf, corrispondente a RGB 30.144.255 , sarà:

0,117 0,564 1.000


# PASSO 2 (per l'editing di pdf)

cerchiamo 0,117 0,564 1.000 in file pdf con blocco note ++ ( avvolgere e abbinare solo una parola da controllare) e abbiamo trovato la rappresentazione pdf interna dello sfondo e possiamo cambiare da azzurro a, diciamo, bianco

1.000 1.000 1.000

o

1 1 1

ma, dal momento che hai scritto su sfondo blu , per essere più precisi, ho creato un pdf di esempio con sfondo blu ( blu puro 0,0,255 RGB - se il tuo blu aveva una tonalità diversa, modifica i miei suggerimenti) e testo giallo

poiché sappiamo che 0.000 0.000 1.000 rg significa blu , lo cerchiamo e possiamo passare da 0.000 0.000 1.000 rg a 1.000 1.000 1.000 rg (bianco) MA ...

allo stesso tempo, puoi anche cambiare il testo da giallo a nero

cercando 1.000 1.000 0.000 (testo giallo) e passare al nero 0.000 0.000 0.000

e ora abbiamo un pdf vettoriale con testo nero e sfondo bianco

per favore, ricordati di

    • comprimi di nuovo questo pdf che hai modificato se non compresso con pdftk
    • riparazione
pdftk file.pdf output fixed.pdf

c'è un altro modo, a partire da postscript, di eseguire la stessa attività, ma poiché hai già il file pdf , la conversione in postscript per eseguire l'attività simile sarebbe un passaggio superfluo

dai un feedback, per favore, e sentiti libero di chiedere di più


fantastico, grazie +1
enzotib

Sono contento di essere stato un po 'utile :-)
Dingo 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.