Manipulación de ebooks en GNU/Linux
PDFs: convertir páginas a imágenes para su tratamiento
Si eres poseedor de un ebook reader, seguramente te habrás encontrado con que los ficheros .epub de libros y novelas se leen a la perfección pero los ficheros PDF no se visualizan correctamente, normalmente debido a los márgenes "en blanco" que contienen y que acaban provocando que el texto en sí no ocupe la totalidad de la pantalla sino sólamente la parte central de la misma.
A continuación se detallan los pasos a realizar extraer las diferentes páginas de un fichero PDF como imágenes, tratarlas para recortar los bordes, y redimensionarlas al tamaño de pantalla de nuestro dispositivo. El objetivo es generar ficheros PDF, EPUB o CBR que contengan el mismo libro original pero eliminando los márgenes y con un tamaño de imagen que quepa completo en nuestra pantalla.
Para eso utilizaremos paquetes de software libre como convert (parte del paquete imagemagick) y pdfimages (del paquete poppler-utils).
Mi ebook reader es un bq Avant XL de 9", por lo que los ejemplos estarán adaptados a la resolución 1024x768 pero estas técnicas servirán también para un ebook reader estándar de 6" (600x800) modificando los valores en los scripts / línea de comandos que veremos.
Obviamente, el resultado dependerá del tipo de documento que estemos convirtiendo. En un ebook de 6" a 800x600 podremos ver perfectamente, por ejemplo, un comic manga de tamaño estándar como Dragon Ball, o un comic americano (ambos normalmente pequeños), pero será prácticamente imposible convertir y ver un comic tamaño folio tipo Asterix o una revista A4. Lo mismo ocurre con los libros. Un libro de tamaño típico (no tiene por qué ser bolsillo) escaneado se verá correctamente, pero algo de mayores tamaños puede no leerse en estas resoluciones.
Los pasos para la conversión serían:
- Si tenemos el comic/libro en formato PDF:
- Procesar el PDF para extraer un directorio con sus imágenes, con la mínima compresión / pérdida de calidad posible.
- Si el comic/libro está en formato "imágenes" (o lo hemos obtenido extrayéndolo del PDF):
- Procesar cada imagen eliminando el marco / borde / margen que pueda tener.
- Redimensionar cada imagen al tamaño de nuestro dispositivo.
- Optimizar cada imagen para reducir su tamaño, colores, formato y por tanto el tiempo de procesado del dispositivo.
- Empaquetar las diferentes imágenes en un PDF, en un CBR, en un EPUB o en un simple directorio.
Cada uno de los pasos anteriores se detallan a continuación. Vamos a ver todos los "pasos del procesado" por separado, pero lo ideal es aplicarlos en un único proceso, para evitar pérdida de calidad. Posteriormente veremos un script para automatizar esto:
- Convertir un PDF gráfico en imágenes: Cómo convertir un PDF "gráfico" (generado por múltiples imágenes escaneadas, y no por texto) de 1 página por hoja, en una ristra de imágenes para tratar.
- Partir escaneos de páginas dobles en páginas simples: Cómo convertir ficheros de imagen que contienen escaneos de páginas dobles en ficheros con 1 página por imagen.
- Voltear o rotar páginas: Cómo voltear páginas del revés o rotarlas 90 ó 180 grados.
- Recortar márgenes en imágenes: Cómo tratar múltiples imágenes (por ejemplo, extraídas de un PDF o de un CBR/CBZ) para recortar de ellas una porción de la misma y así eliminar el borde.
- Redimensionar y adaptar las imagenes para nuestro dispositivo: Una vez recortadas las diferentes imágenes, cómo redimensionarlas y tratarlas para que tengan el tamaño, formato y espacio de color adecuado para que la visualización sea perfecta en nuestro dispositivo.
- Convertir imágenes en fichero PDF: Cómo convertir un directorio con múltiples imágenes en un fichero contenedor PDF.
- Convertir imágenes en fichero EPUB: Cómo convertir un directorio con múltiples imágenes en un fichero contenedor EPUB.
- Convertir imágenes en fichero CBR y CBZ: Cómo convertir un directorio con múltiples imágenes en un fichero contenedor CBR o CBZ.
Agrupando todos los pasos en un único "script":
- Ejemplo de scripts de procesado completo: Cómo convertir de PDF a JPG, CBZ y PDF en un sólo paso.