Si escanea una página con texto en un PDF y ejecuta una aplicación de OCR, entonces el texto se agregará a la página, pero el "modo de representación de texto" se establece en invisible. Está allí, pero no se muestra en la pantalla (o en papel si se imprime). Lo que ve o imprime es la imagen escaneada original.
¿Cómo podemos hacer visible el texto invisible?
Bueno, podemos editar el PDF ... El código PDF para configurar la representación del texto en invisible es este:
3 Tr
No puede encontrar esta cadena (todavía) en el original from_abbyy.pdf ni en from_ghostscript.pdf porque algunas partes de los archivos PDF están comprimidos. Entonces los descomprimimos lo más posible con la ayuda de qpdf
:
qpdf \
--qdf \
from_abbyy.pdf \
qdf--from_abbyy.pdf
qpdf \
--qdf \
after_ghostscript.pdf \
qdf--after_ghostscript.pdf
Ahora podemos encontrar la cadena anterior fácilmente (y solo hay una aparición en cada archivo).
Cambiemos esto a uno de los modos visibles de representación de texto. En general, podemos elegir entre estos 8 modos de representación de texto:
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
Si uso el modo "relleno", el texto del OCR probablemente no se verá tan bien encima de la imagen de escaneo subyacente. Por lo tanto, prefiero la variante de "trazo". Así que simplemente cambio la línea de arriba para leer
1 Tr
Mirando este PDF modificado, no me gusta, porque el ancho de línea predeterminado es demasiado grueso para mi gusto. Además, el color del trazo del contorno es negro (predeterminado); Prefiero el rojo para tener un contraste con las formas originalmente escaneadas. Por lo tanto, agrego un código al frente de esta línea que establece el ancho de línea en un cuarto de punto:
.25 w
y alguna otra para establecer el color del trazo en rojo:
1 0 0 RG
La línea completa ahora se lee:
.25 w 1 0 0 RG 1 Tr
Eso es todo.
Tenga en cuenta que nuestra pequeña manipulación ha dañado el archivo, porque su "TOC" (en términos técnicos: su xref
tabla) ya no será válida. Sin embargo, Acrobat Reader o Acrobat Professional lo abrirán (sin quejarse siquiera) y silenciosamente "repararán" la sección xref del archivo. Otros lectores de PDF pueden rechazar el archivo, pero por ahora no nos importa ...
Aquí hay capturas de pantalla del resultado:
(La primera captura de pantalla se amplía al ancho de la ventana).
(La segunda captura de pantalla se amplía al 800%).
Los contornos rojos son el texto escaneado que se hace visible ahora, tal como lo queríamos.
Realicé el mismo procedimiento descrito anteriormente para ambos archivos from_abbyy.pdf y after_ghostscript.pdf . Abrí ambos resultados en 2 instancias diferentes de Acrobat Reader. Si hacemos que ambos se acerquen al mismo valor y maximicemos ambas ventanas, entonces es fácil alternar la vista entre ambos archivos mediante [alt]+[tab]
. Esta es una buena manera de revelar incluso las mejores diferencias de representación entre dos archivos PDF.
Mi resultado es: ni siquiera hay un solo píxel diferente entre la entrada de Ghostscript (v9.02) y su salida para este archivo. Pero hay una gran diferencia si desea copiar y pegar texto ...