La herramienta de escaneado de documentos gscan2pdf permite añadir scripts de postprocesado a los archivos pdfs guardados desde la aplicación. Gracias a esto podemos crear un script que nos permite optimizar los ficheros de salida para que ocupen menos.
Entes de entrar en materia, voy a definir 2 perfiles de parametros que uso habiatualmente para diferentes tipos de documento, aunque estos parámetros van a variar notablemente según el tipo de documento y el hardware del scaner.
Perfil1: Documentos generales
Este es un perfil en color para los documentos que probablemente acabe usando en algún punto y que necesitan una calidad decenta:
- OCR: Tesseract (Spanish)
- Modo de escaneo: Color
- Corrección de gamma = 1.8
- Resolución: 300
Perfil2: Rápido
Este es un perfil en blanco y negro que hace que el escáner haga un barrido muy rápido y no sirve si el documento tiene mucho detalle ya que aparecen artefactos. Es un perfil pensado para los documentos que quiero tener guardados pero que probablemente no vaya a usar nunca, simplemente los dejo como consulta futura.
- OCR: Tesseract (Spanish)
- Modo de escaneo: Line art
- Correción gamma: 1.0
- Resolución: 150
- Umbral: 128
Script
Para definir nuestro script creamos un archivo compress_pdf.sh con el siguiente contenido:
#!/bin/bash
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=/tmp/temp_gs_convert.pdf "$1"
mv /tmp/temp_gs_convert.pdf "$1"
Ahora en gcan2pdf vamos a editar > preferencias > Opciones generales y seleccionamos añadir en la parte de abajo en la sección de herramientas definidas por el usuario y ponemos la ruta compelta del script creado anteriormente seguido de un espacio y %i esto hará que nos pasé como parámetro el nombre del archivo.
Una vez hecho esto en el dialogo de guardar PDF nos va a aparecer una opción de «gancho de post-guardado» (pésima traducción a español), y si activamos esa opción, podemos seleccionar nuestro script. Yo suelo dejar el resto de opciones por defecto.
Con esto cada vez que guardemos un archivo se va a ejecutar nuestro script y se va a comprimir el pdf para que ocupe lo menos posible, en muchos casos tan solo unos kb.