Trampas del PDF · PDF comentado → fuente editable
Por qué pegar desde PDF sale mal
Copiar desde un PDF no siempre es copiar texto limpio. A veces es traducir una página visual a una cadena de texto editable.
En pantalla parece sencillo.
Ves una página ordenada: líneas, columnas, palabras, tablas, notas, títulos, pies, números. Seleccionas una frase, copias, pegas.
Y entonces aparece el pequeño desastre.
- Saltos de línea donde no tocaba.
- Palabras partidas.
- Guiones de final de línea.
- Columnas mezcladas.
- Espacios invisibles.
- Ligaduras raras.
- Tablas convertidas en una fila imposible.
- Un orden de lectura que nadie habría leído así.
El PDF no es solo texto: también es geometría
El problema está antes del portapapeles.
Un PDF puede contener texto, claro. Pero no lo guarda siempre como lo guarda Word, XML, HTML o un documento fuente editable. También guarda una composición visual: posiciones, cajas, líneas, columnas, glifos, fragmentos.
Tú ves una frase. El archivo puede guardar piezas colocadas en una página.
Por eso copiar desde PDF no siempre significa extraer una frase limpia. A veces significa reconstruir una ilusión visual como texto corrido.
No falla solo el copiar y pegar
Esto no ocurre únicamente cuando usas Ctrl+C y Ctrl+V.
También puede pasar cuando exportas un PDF a Word. O cuando usas un conversor online. O cuando una herramienta de Adobe intenta reconstruir el documento. O cuando una librería técnica extrae texto con Python u otro sistema.
Cada camino tiene sus trampas.
El exportador puede inventar cajas, estilos, saltos o columnas. El conversor puede ordenar mal bloques de texto. La extracción técnica puede leer coordenadas, glifos y posiciones, pero no entender la página como la entiende una persona.
El PDF no siempre te entrega el texto que ves. Te entrega el texto que puede reconstruir.
El problema serio empieza al buscar
Si el objetivo fuera solo pegar un párrafo en otro sitio, esto sería una molestia de formato. Lo arreglas, limpias saltos, unes palabras y sigues.
Pero aplicar comentarios de revisión casi nunca es solo pegar. Antes hay que llegar al lugar correcto del documento fuente.
A veces se llega mirando: PDF a un lado, fuente al otro, scroll, ojo editorial, títulos, números, palabras raras, negritas, tablas o cualquier faro visual que ayude a orientarse.
Otras veces se llega buscando: copias una selección del PDF, o una frase cercana, y la pegas en una caja de búsqueda.
En Ctrl+F. En buscar y reemplazar. En el buscador interno de Word, de un XML, de un HTML, de un editor de texto o de una herramienta propia.
Ahí la deformación ya no es solo estética. Puede convertir una coincidencia en un “no encontrado”.
Una selección que debería encontrar una coincidencia puede encontrar cero. Una frase que visualmente existe en el fuente puede no aparecer porque llega desde el PDF con cortes, guiones, espacios o caracteres que no estaban en el documento editable.
Entonces el problema ya no es “se ha pegado raro”. El problema es más grave: no has conseguido localizar el cambio.
Ejemplo simple
Lo que puede llegar desde el PDF
revi- sión editorial
Lo que vive en el fuente
revisión editorial
Visualmente sabes que es lo mismo.
El buscador no siempre.
Por eso pegar desde PDF sale mal por la misma razón por la que buscar desde PDF puede fallar: antes de comparar PDF y fuente, alguien ha tenido que convertir una página visual en texto comparable.
El criterio IMC
Insert My Comments no puede tratar el texto que viene del PDF como si fuera una verdad limpia.
Tiene que normalizar, comparar con cuidado y sospechar de lo que parece obvio: guiones que quizá no son guiones reales, espacios que no son espacios normales, columnas que visualmente estaban separadas pero técnicamente llegan mezcladas.
El problema no empieza cuando pegas mal.
Empieza antes: cuando el PDF te hace creer que estás copiando una frase limpia, pero en realidad está intentando traducir una página visual a una cadena buscable.
Destornillador editorial
Copiar limpio desde PDF
Para quien todavía trabaja a mano con PDF y fuente editable, hay un pequeño gesto que puede ahorrar bastante barro: copiar la selección del PDF, limpiarla un poco y dejarla preparada en el portapapeles.
Este ejemplo usa AutoHotkey v2 y crea un atajo nuevo: Ctrl + Alt + C. No sustituye el Ctrl+C normal. Solo añade una copia especial para textos que vienen de PDF.
La idea es simple: seleccionas texto en el PDF, pulsas Ctrl+Alt+C, el script copia, limpia deformaciones frecuentes y vuelve a dejar el texto normalizado en el portapapeles. Después tú decides dónde pegarlo: en Word, en una caja de búsqueda, en un XML, en un editor de texto o donde quieras.
- Une palabras partidas por guion de final de línea.
- Convierte saltos de línea internos en espacios.
- Normaliza espacios múltiples.
- Elimina soft hyphens.
- Convierte espacios duros en espacios normales.
- Sustituye ligaduras comunes como fi, fl, ff, ffi o ffl.
Esto no es un instalador ni una aplicación cerrada. Es código fuente para quien ya sabe instalar AutoHotkey, crear un archivo .ahk y ejecutarlo en Windows. Hay mucha documentación en internet para esa parte. La gracia aquí es el criterio editorial: copiar desde PDF no siempre debería ser copiar sin limpiar.
; Copiar limpio desde PDF
; AutoHotkey v2
; Atajo: Ctrl + Alt + C
;
; Uso:
; 1. Selecciona texto en el PDF.
; 2. Pulsa Ctrl + Alt + C.
; 3. El portapapeles queda con una versión más limpia.
; 4. Pega donde quieras: Word, Ctrl+F, XML, editor de texto, etc.
^!c::
{
oldClip := A_Clipboard
A_Clipboard := ""
Send "^c"
if !ClipWait(1) {
A_Clipboard := oldClip
return
}
text := A_Clipboard
; Espacios y caracteres invisibles frecuentes
text := StrReplace(text, Chr(160), " ") ; NBSP / espacio duro
text := StrReplace(text, Chr(173), "") ; soft hyphen
; Ligaduras comunes
text := StrReplace(text, "fi", "fi")
text := StrReplace(text, "fl", "fl")
text := StrReplace(text, "ff", "ff")
text := StrReplace(text, "ffi", "ffi")
text := StrReplace(text, "ffl", "ffl")
; Unir palabras partidas por guion de final de línea
; Ejemplo: revi-
; sión → revisión
text := RegExReplace(
text,
"([A-Za-zÁÉÍÓÚÜÑáéíóúüñ])-\R([A-Za-zÁÉÍÓÚÜÑáéíóúüñ])",
"$1$2"
)
; Convertir saltos de línea restantes en espacios
text := RegExReplace(text, "\R+", " ")
; Normalizar espacios múltiples
text := RegExReplace(text, "[ \t]{2,}", " ")
; Recortar espacios exteriores
text := Trim(text)
A_Clipboard := text
}
Es una base mínima. Cada editor puede añadir sus propias limpiezas según sus PDFs, idiomas, fuentes y herramientas. No resuelve la localización completa, no entiende comentarios y no sustituye una mesa como IMC. Solo hace una cosa: dejar el texto copiado desde PDF un poco menos sucio.