En el capítulo anterior habíamos pedido ayuda a Coco para que nos enseñara cómo arreglar los errores que se producen en la conversión de un archivo PDF hacia ePUB en CALIBRE.
Vamos a continuar utilizando RegEx para retocar el texto para conseguir un archivo ePUB sin errores.
ARREGLANDO LOS ERRORES MÁS HABITUALES
Los errores más habituales tienen que ver con la interrupción del flujo de texto, partiendose frases y párrafos en donde no procede.
Párrafo interrumpido por un RETORNO DE CARRO:
Vemos como la frase se corta y empieza un nuevo párrafo.
La expresión de búsqueda será:
He incluido las vocales acentuadas con la expresión “\()
”
La expresión de sustitución es: \1 \3
Es decir, la última letra del primer párrafo, un espacio y la primera letra del segundo párrafo.
Además de seleccionar el check de “Match Case” para asegurar la diferenciación entre MAYUSCULAS y MINUSCULAS, conviene seleccionar “Minimal Matching” que asegura que se seleccionan los “segmentos” de texto más pequeños de todos aquellos que cumplen la condición de búsqueda.
Pulsamos ENTER y ¡Voilá!…
Carácteres espúreos al final de una frase:
Son números, correspondientes a la paginación del archivo PDF. En este caso, la expresión de búsqueda es sencilla:
Buscamos un bloque de entre 1 y 3
números (el libro no tiene más de 999 páginas) situado entre un punto “.” con un espacio detrás y una etiqueta de cierre de párrafo.
Lo sustituimos simplemente por un punto “.” seguido de la etiqueta de cierre de párrafo.
Pulsamos ENTER y “Abra-ca-dabra”…
MÁS párrafos interrumpidos por un RETORNO DE CARRO
¿Pero NO HABIAMOS RESUELTO ESTE TIPO DE ERROR antes? preguntareis. Pues sí, pero NO. Porque en la expresión de búsqueda anterior no incluimos caracteres especiales cómo la coma “,” y la interrogación “¿”. Así pues nos queda cubrir los casos en los que intervienen estos caracteres que son escasos pero que en un libro de 300 y pico páginas pueden darse cerca de 50 veces. Lo resolvemos sin necesidad de RegEx, simplemente copiando la cadena a sustituir:
Le damos al ENTER y ¡Zas!…
Parrafos interrumpidos por un RETORNO DE CARRO después de un guión largo
Al incluir otro tipo de carácter especial, el guión largo “—” (EM Dash) también se escapó de la primera expresión de sustitución. A veces no queda más remedio que realizar este tipo de depuración “por capas de cebolla”, desde lo más general hasta los casos particulares. Aquí la expresión de búsqueda es más compleja:
Como siempre en este caso, debemos marcar el check de “Match Case” para asegurarnos de discriminar entre MAYUSCULAS y MINUSCULAS. Pulsamos ENTER para ver la magia de RegEx en acción:
Parrafos interrumpidos por un RETORNO DE CARRO después de un guión largo cuando es un COMIENZO de FRASE
Ya sólo nos queda por resolver el caso más enrevesado y dificil de diferenciar del texto correcto. Es cuando después de guión largo “—” (EM Dash) se rompe el párrafo; y el primer carácter del párrafo siguiente es una MAYÚSCULA, lo cual hace que sea muy dificil de distinguir de un principio de frase legítimo.
Tendremos como expresión de busqueda:
OJO! con el “Match Case” y “Minimal Matching”; Pero aquí el truco para comprobar que efectivamente se ha roto la frase de forma incorrecta es que existe un punto “.” justo antes del guión largo “—” (EM Dash); lo que indica que el mismo es el primer caracter de una nueva frase y no el último de la corriente.
Como siempre despúés de pulsar ENTER:
Los casos que hemos resuelto con estos retoques han eliminado cerca de 800 errores del texto, lo que supone la diferencia entre un ebook decente y una chapuza.
¡Bravo, Maestro!
ResponderEliminarEstupendos los dos capítulos; algo que estaba buscando desde hace tiempo.
Gracias.
Me alegro.
ResponderEliminarSi tienes alguna duda en concreto, ya sabes.
Y si te gusta algo, ¡ponle estrellitas! y compartelo en redes sociales.
Muchas gracias!
ResponderEliminarEstos dos capítulos me van a venir genial adecentar mi biblioteca :D
Una pregunta: existiría alguna forma para poder convertir un pdf dividido en dos columnas? Lo he intentado, pero todo lo que consigo es un texto en el que se entrelazan filas de las distintas columnas...
¡Magnífico! Esto me está ayudando mucho ;-)
ResponderEliminar¿Ya no actualizas el blog? ¡Qué pena! He aprendido un montonazo con este blog.
ResponderEliminarLos PDFs a 2 columnas son muy complicados. Lo único que se me ocurre es modificarlo con ADOBE ACROBAT que tiene una opción donde se puede forzar el reflow. Pero habría que ver cada documento en particular. Si quieres mandame un archivo y le hago unas pruebas y te cuento.
ResponderEliminarYa estamos de vuelta y poniendonos al día para responder a todo el mundo.
ResponderEliminarGracias, todavia vamos a dar mucha guerra.
No me queda muy claro el cambio que quieres hacer. ¿puedes darme más detalles? ¿Cual es el texto final que quieres que quede?
ResponderEliminarAcabo de convertir un pdf a epub con Calibre, pero el código que genera es diferente. Un par de ejemplos de párrafos rotos por el número de página:
ResponderEliminarhttp://textsnip.com/b662ef/css
http://textsnip.com/b662ef/css
¿Hay alguna forma de corregirlo automáticamente (yo no lo he conseguido) o debería limpiar un poco el pdf antes de pasarlo por Calibre?
Saludos y gracias por todos estos consejos.