Mi sistema operativo es Ubuntu 12.04. ¿Cómo puedo convertir un archivo pdf de escala de grises a blanco y negro? El archivo pdf en escala de grises proviene del escaneo con la opción de escala de grises, y el OCR requiere el pdf en escala de blanco y negro.
Actualizar:
Tras la respuesta de Marco, el pdf BW no es bueno y el archivo original está aquí .
command-line
pdf
Tim
fuente
fuente
scantailor
scantailor
tiene un montón de otras características útiles a la hora de preparar las exploraciones para OCR, y esa es la única razón por la que me sugirió (como un comentario, no una respuesta)pdfimages
(poppler) para extraer imágenes escaneadas de su contenedor PDF. Puede ser más eficiente manejarlos con ImageMagick en primer lugar.Respuestas:
1) Use ghostscript para convertir el PDF a un archivo PostScript monocromo usando el dispositivo psmono :
2) Luego convierta el PostScript monocromático de nuevo a PDF:
EDITAR: el
psmono
dispositivo crea una imagen de medio tono de 1 bit que aparentemente no es lo que desea. No pude encontrar una manera de especificar un umbral usando ghostscript, así que recurrí a imagemagick.convert
internamente usa ghostscript para convertir el PDF. Luego aplica el filtro de umbral para producir una imagen de 1 bit y usa ghostscript nuevamente para crear un PDF. Dado queconvert
utiliza una resolución de 75 DPI por defecto, que podría no coincidir con su resolución real, puede proporcionar eldensity
argumento. Y experimente con lathreshold
configuración. Los valores óptimos dependen en gran medida del archivo de entrada.fuente
La mejor manera que descubrí, sin pérdida de calidad, elimina las sombras, el ruido, el texto de la página siguiente que se filtra, etc.
1) Primero convierta pdf a imágenes individuales
2) En segundo lugar, elimine las sombras, el ruido y el texto de la página siguiente que se filtra (créditos a este blog )
esto podría agregarse como un paso adicional o en lugar del comando anterior para obtener solo dos colores:
3) Esto para hacer un archivo pdf de cada imagen jpg sin pérdida de resolución o calidad:
4) Esto para concatenar las páginas pdf en una:
5) Y por último agrego una capa de texto OCRed que no cambia la calidad del escaneo en los archivos PDF para que puedan buscarse:
fuente
También tenía algunos archivos PDF en color escaneados y archivos PDF en escala de grises que quería convertir a bw. Intenté usarlo
gs
con el código que aparece aquí , y la calidad de imagen es buena con el texto en PDF que todavía está allí. Sin embargo, ese código gs solo se convierte en escala de grises (como se preguntó en la pregunta) y todavía tiene un gran tamaño de archivo.convert
produce resultados muy pobres cuando se usa directamente.Quería archivos PDF con buena calidad de imagen y tamaño de archivo pequeño. Mi solución se utiliza
gs
para extraer archivos bmp en escala de grises del pdf,convert
para limitar esos bmps a bw y guardarlos como archivos tiff, y luego img2pdf para comprimir las imágenes tiff y combinarlas en un solo pdf.Intenté ir directamente a tiff desde el pdf, pero la calidad no es la misma, por lo que guardo cada página en bmp. Para un archivo pdf de una página,
convert
hace un gran trabajo desde bmp a pdf. Ejemplo:Para varias páginas,
gs
puede combinar múltiples archivos pdf en uno, peroimg2pdf
produce un tamaño de archivo más pequeño que gs. Los archivos tiff deben descomprimirse como entrada para img2pdf. Tenga en cuenta que para un gran número de páginas, los archivos intermedios bmp y tiff tienden a ser de gran tamaño.pdftk
ojoinpdf
sería mejor si pueden fusionar archivos PDF comprimidos deconvert
.Me imagino que hay una solución más elegante. Sin embargo, mi método produce resultados con muy buena calidad de imagen y un tamaño de archivo mucho más pequeño. Para recuperar el texto en bw pdf, ejecute OCR nuevamente.
Mi script de shell usa gs, convert e img2pdf. Cambie los parámetros (número de páginas, ppp de escaneo,% umbral, etc.) enumerados al principio según sea necesario, y ejecútelos
chmod +x ./pdf2bw.sh
. Aquí está el script completo (pdf2bw.sh):fuente
En realidad, si proviene de un escaneo, la única forma razonable es usar imágenes en pdf y convertir los gráficos subyacentes. Usé este script para convertirlo:
fuente
Gracias a OccamsRazor por su guión, que hace un gran trabajo al convertir PDF en color y en escala de grises en una versión monocromática legible y compacta. Este es realmente un comentario en la publicación de OccamsRazor, pero no tengo suficientes puntos para comentar.
El guión se producirá un error en el
img2pdf -o ./$output_pdf_name --dpi $dpi_res $input_files
que--dpi
ya no es un argumento aceptado para img2pdf. En cambio, obtiene la resolución del archivo de entrada, por lo que puede dejarlo fuera.Aquí está mi versión del guión. No quería editar el script para cada archivo, por lo que paso el número de páginas y el nombre del archivo de entrada cuando lo ejecuto. Tengo el nombre de salida ajustada a y ajustar la resolución a 200 ppp, que trabaja para mi flujo de trabajo, pero puede que desee cambiar, o convertirlos en y y pasarlos en.
00input_name
$3
$4
Para ejecutar, el uso , por ejemplo, .
./pdf2bw.sh <number_of_pages> <input_name>
./pdf2bw.sh 55 input.pdf
fuente
"./$input_pdf_name"
e inclusoseq 1 "$num_pages"
. Además, es posible que desee cambiar`…`
a$(…)
: vea esto , esto y esto .