Se si esegue la scansione di una pagina con testo in un PDF e si esegue un'applicazione OCR su di essa, il testo verrà aggiunto alla pagina, ma la "modalità di rendering del testo" è impostata su invisibile. È lì, ma non viene visualizzato sullo schermo (o sulla carta se stampato). Quello che vedi o stampa è l'immagine digitalizzata originale.
Come possiamo rendere visibile il testo invisibile?
Bene, possiamo modificare il PDF ... Il codice PDF per impostare il rendering del testo su invisibile è questo:
3 Tr
Non puoi trovare questa stringa (ancora) nell'originale from_abbyy.pdf né in from_ghostscript.pdf perché parti dei PDF sono compresse. Quindi li decomprimiamo il più possibile con l'aiuto di qpdf
:
qpdf \
--qdf \
from_abbyy.pdf \
qdf--from_abbyy.pdf
qpdf \
--qdf \
after_ghostscript.pdf \
qdf--after_ghostscript.pdf
Ora possiamo trovare facilmente la stringa sopra (e c'è solo un'occorrenza in ciascun file).
Passiamo a una delle modalità visibili di rendering del testo. Nel complesso, possiamo scegliere tra queste 8 modalità di rendering del testo:
0 - fill glyph shapes
1 - stroke glyph shapes
2 - fill, then stroke glyph shapes
3 - neither fill nor stroke glyph shapes (invisible)
4 - fill and add to path for clipping glyph shapes
5 - stroke glyph shapes and add to path for clipping
6 - fill, then stroke glyph shapes and add path for clipping
7 - add glyph shapes to path for clipping
Se uso la modalità "riempimento", il testo dell'OCR probabilmente non apparirà così buono sull'immagine di scansione sottostante. Pertanto preferisco la variante "corsa". Quindi cambio semplicemente sopra la riga per leggere
1 Tr
Guardando questo PDF modificato, non mi piace, perché la larghezza di linea predefinita è troppo spessa per i miei gusti. Inoltre, il colore del tratto del contorno è nero (impostazione predefinita); Preferirei il rosso per avere un contrasto con le forme originariamente scansionate. Pertanto aggiungo un po 'di codice all'inizio di questa riga che imposta la larghezza della linea su un quarto di punto:
.25 w
e alcuni altri per impostare il colore del tratto su rosso:
1 0 0 RG
La riga completa ora è la seguente:
.25 w 1 0 0 RG 1 Tr
È tutto.
Nota che la nostra piccola manipolazione ha danneggiato il file, perché il suo "TOC" (in termini tecnici: la sua xref
tabella) ora non sarà più valido. Acrobat Reader o Acrobat Professional lo apriranno comunque (senza lamentarsi nemmeno) e "ripareranno" silenziosamente la sezione xrif del file. Altri visualizzatori di PDF potrebbero rifiutare il file, ma per ora non ci interessa ...
Ecco alcuni screenshot del risultato:
(Il primo screenshot viene ingrandito alla larghezza della finestra.)
(Il secondo screenshot viene ingrandito all'800%.)
I contorni rossi sono il testo digitalizzato reso visibile ora, proprio come lo volevamo.
Ho condotto la stessa procedura descritta sopra per entrambi i file from_abbyy.pdf e after_ghostscript.pdf . Ho aperto entrambi i risultati in 2 diverse istanze di Acrobat Reader. Se eseguiamo entrambi lo zoom sullo stesso valore e massimizziamo entrambe le finestre, è facile alternare la vista tra i due file tramite [alt]+[tab]
. Questo è un buon modo per rivelare anche le migliori differenze di rendering tra due file PDF.
Il mio risultato è: non c'è nemmeno un singolo pixel diverso tra l'input di Ghostscript (v9.02) e il suo output per questo file. Ma c'è una bella differenza se vuoi copiare il testo ...