Convertí un informe de dos páginas a Word para comprobar algo, y el segundo párrafo volvió así:
Los ingresos aumentaron en el tercer número de plantilla crecieron en cuatro, trimestre gracias a dos todos en apoyo. La contratación de grandes renovaciones firmadas en el plan para el cuarto trimestre de agosto. Margen mantenido plano. no cambia en seis roles.
Dos columnas de prosa perfectamente ordinaria, leídas a través de la canaleta línea por línea, de modo que cada oración se empalme en la que está a su lado. Nada estaba roto. El convertidor hizo exactamente lo que puede hacer un convertidor, y la brecha entre eso y lo que la frase "pdf a palabra" promete es el tema completo de esta guía. Cada salida citada a continuación proviene de ejecutar la conversión, no de describirla.
TL;Dr: Un PDF almacena glifos en coordenadas. No almacena párrafos, columnas, tablas o encabezados, por lo que un convertidor tiene que inferirlos de posiciones, y algunas de esas inferencias son incorrectas de maneras que puede predecir. Medido en un informe de prueba: dos columnas entrelazadas línea por línea, una tabla de cuatro filas aplanada a una línea de lectura "Región Q2 Q3 EMEA 412 455 Amer 388 401 APAC 120 166 , un encabezado fusionado en el párrafo debajo de él, y una página sin capa de texto no produjo nada en absoluto. Lo que obtiene de manera confiable es una prosa editable en orden de página, que para la mayoría de los trabajos es lo que quería. los Convertidor de PDF a Word lo hace en el navegador, por lo que el documento no se carga.
¿Qué se almacena dentro de un PDF?
Instrucciones para pintar una página, no un documento.
Un flujo de contenido de PDF dice cosas como "Establecer esta fuente en este tamaño, mover a x 60, y 720, mostrar estos glifos". los especificación en sí es una descripción de un modelo de pintura, y los operadores de texto se sientan junto a los de dibujo de líneas y relleno de formas. No hay ningún objeto en el archivo que signifique "párrafo", ningún objeto que signifique "Esto es una tabla", y nada que registre que dos bloques de texto son columnas en lugar de uno amplio. El formato fue diseñado para que una página se imprima de manera idéntica en todas partes, y lo logra describiendo la página como marcas en lugar de contenido.
Entonces, un convertidor recibe una lista de ejecuciones posicionadas. pdf.js, el analizador que se ejecuta, se las entrega exactamente como la dibuja la página. En el archivo de prueba, la página uno produjo 34 de ellos y la página dos produjo 4. Cada ejecución es una cadena con una x, una y, una anchura y una altura de fuente, y el orden en que llegan es el orden en que se dibujó la página, que no es necesariamente el orden en que las leería.
Todo lo que un documento de Word necesita que no tenga un PDF, el convertidor tiene que reconstruir a partir de esos cuatro números. Esa reconstrucción es la totalidad de lo que sigue, incluso en todas partes que sale mal.
¿Cómo reconstruye los párrafos de un convertidor a partir de coordenadas?
En dos pasadas, con un umbral en cada uno.
Los grupos de primer paso se encuentran en líneas por línea de base: las ejecuciones cuyos valores y se encuentran dentro de la mitad de una altura de fuente son una línea. El segundo agrupa las líneas en párrafos por el espacio vertical entre ellos. Un espacio mayor que aproximadamente 1,45 veces el espaciado de línea habitual inicia un nuevo párrafo, donde "usual" es la brecha mediana en esa página en lugar de un número fijo, por lo que la regla se adapta a un documento establecido en 9 puntos o 14 puntos.
Hay un tercer umbral dentro de una línea. pdf.js a menudo divide una sola palabra entre varias ejecuciones sin espacio entre ellas, por lo que la unión de ejecuciones en un espacio se convierte en "nombre de archivo" en "f i l e n a m e". La solución es insertar un espacio solo cuando el espacio horizontal supera la cuarta parte de la altura de la fuente, que es aproximadamente el ancho de un espacio de palabra real.
Estos tres números deciden casi todo sobre la salida. Cuando el resultado es bueno, tenían razón. Cuando un encabezado se apega al párrafo debajo de él, la brecha fue inferior a 1,45 veces la mediana y la regla decía un párrafo.
¿Por qué salen dos columnas entrelazadas?
Porque la única evidencia de una columna es un espacio horizontal, y la agrupación de líneas mira primero la posición vertical.
Los dos bloques en mi página de prueba se sentaban en x 60 y x 320, con sus líneas en líneas de base compartidas. La agrupación vio seis líneas de base, cada una con texto de ambos lados, y leía cada una. El resultado es el párrafo en la parte superior de esta guía: cada línea de la columna izquierda seguida inmediatamente por la línea que está al lado.
Este es el mismo error que las columnas codificadas en OCR, y tiene la misma raíz: el orden de lectura es un juicio sobre un diseño, hecho de geometría, por algo que no puede leer.
Los convertidores que manejan las columnas bien hacen un paso de segmentación de página primero, buscando una banda vertical consistente de espacios en blanco que ejecute la altura de la página y divida la página allí antes de cualquier agrupación de líneas. Eso funciona en un periódico o en un periódico, donde la canaleta es ancha y regular. Es menos confiable en los casos comunes, donde una barra lateral, una cita de tracción o una tabla de dos columnas rompe la banda.
Si su documento tiene columnas, la respuesta práctica es verificar la salida y arreglar el primer párrafo de cada página, o convertir una columna a la vez si el documento es suficiente para que valga la pena.
¿Qué le pasa a una mesa?
se convierte en una oración.
Mi archivo de prueba tenía una tabla de cuatro filas con tres columnas. Aquí está todo después de la conversión:
Region Q2 Q3 EMEA 412 455 AMER 388 401 APAC 120 166
Cada valor sobrevivió. La estructura no lo hizo. No se puede decir de esa línea que 412 es la figura del Q2 de EMEA sin contar las posiciones y conocer la forma del original.
La razón es que la mayoría de los PDF tampoco contienen tablas. Una tabla en un PDF suele ser texto dibujado en coordenadas con algunas líneas dibujadas a su alrededor, y las líneas son operaciones de gráficos que no tienen nada en el archivo que las conecta al texto que encierran. Un convertidor tendría que detectar la alineación de los números, inferir una cuadrícula y decidir qué ejes pertenecen a qué celda, cuál es un problema de investigación en lugar de analizar.
Algunos PDF tienen una estructura real, a través de etiquetas agregadas para acceder a la accesibilidad, y las que se convierten mucho mejor. Son una minoría: los PDF etiquetados provienen de una exportación cuidadosa fuera de la palabra o de InDesign, no de un controlador de impresión.
Si la tabla es lo que desea, cópiela en una hoja de cálculo a mano o convierta el PDF a texto y vuelva a moldearla allí. Un archivo de Word convertido no le dará celdas.
¿Por qué mi encabezado se fusionó en el párrafo?
Porque el espacio debajo de él no era lo suficientemente grande como para hacer tropezar con la regla de los párrafos.
En la página dos del archivo de prueba, el título "Notas" se sentó a 40 puntos por encima del texto del cuerpo mientras que las líneas del cuerpo estaban separadas por 18 puntos. Esa brecha es 2,2 veces el espaciado de líneas, lo que debería haberlos dividido, y no lo hizo, porque la brecha mediana en una página con solo cuatro ejecuciones no es una estimación confiable de nada. La salida fue:
Notes Note 14 covers intercompany revenue and the treatment of
deferred items carried over from the prior year.
Esta es la forma honesta de todo el problema. Las reglas de umbral funcionan bien en una página con suficiente texto para establecer un ritmo de referencia y deficientemente en uno escaso. Una portada, una nota corta, una portada o un formulario, a menudo volverán como un párrafo de ejecución.
También es lo más fácil de arreglar después del hecho. Los títulos son obvios para un lector humano, y presionar Return en el lugar correcto toma un segundo, que es menos tiempo del que se necesitaría cualquier herramienta para hacerlo bien.
¿Qué sucede con una página escaneada?
Nada sale, y ese es el comportamiento correcto.
La tercera página de mi archivo de prueba no tenía ninguna capa de texto, solo un rectángulo gris que se encontraba en un escaneo. pdf.js devolvió cero ejecuciones y el convertidor produjo cero párrafos para él.
La página sigue contada. Aparece en el archivo de Word como una página vacía, por lo que la página se rompe después de que se mantiene alineada con el original, que importa cuando alguien trabaja desde números de página. Un convertidor que lo dejó caer en silencio cambiaría cada página posterior.
Un PDF cuyas páginas son todas las imágenes es un escaneo, y ningún conversor puede extraer texto porque no hay texto para extraer. Lo que necesita es OCR, que lee la imagen de las letras y adivina a los personajes, y que trae su propia tasa de error. La versión medida de ese comercio está en La guía sobre lo que rompe OCR: Inclinarse más allá de los tres grados es lo que arruina un escaneo, no la resolución.
Una regla general útil: Abra el PDF e intente seleccionar una oración con su cursor. Si el texto se resalta, un convertidor puede leerlo. Si obtiene un rectángulo de selección sobre una imagen, primero necesita OCR.
¿Qué hay dentro del .docx que sale?
Tres archivos en un zip, y eso es realmente todo lo que se necesita.
Un .docx es un archivo de convenciones de empaque abierto, estandarizado como ECMA-376: un zip que contiene partes XML más un manifiesto que dice qué es cada parte. propio de Microsoft Descripción general del formato Camina las mismas tres partes. El mínimo que se abre como documento de Word es de tres entradas:
| Parte | proponerse |
|---|---|
[Content_Types].xml |
Declara el tipo de medio de cada parte del paquete |
_rels/.rels |
Puntos en la parte principal del documento |
word/document.xml |
el contenido en sí |
Todo lo demás que suele llevar un archivo de Word, estilos, fuentes, temas, configuraciones, definiciones de numeración, es opcional. Déjalos fuera y el lector aplica sus valores predeterminados.
El documento de prueba, de 83 palabras en tres páginas, llegó a un 1.305 bytes .docx cuyo word/document.xml es de 1.169 bytes. Lo abrí con el propio lector de documentos de Apple, que es lo que usan TextEdit y Pages, y renderizó cada párrafo en orden con el salto de página intacto. Un paquete mínimo no es degradado.
Un detalle en que XML importa más de lo que parece. Cada carrera está escrita con xml:space="preserve". Sin él, una carrera que comienza o termina con un espacio lo pierde, y cada línea que estaba envuelta en el original regresa con su última palabra unida a la siguiente.
¿Qué pasa con las imágenes?
Se eliminan y el archivo de Word no lo menciona.
El paquete escrito aquí tiene tres partes y ninguna de ellas es una parte de los medios. Un logotipo, un gráfico, una firma escaneada, una captura de pantalla incrustada en el informe: todo desaparecido, sin marcador de posición donde estaban. El texto que los rodea se cierra como si nunca hubieran estado allí.
Esto es una consecuencia del mismo diseño que hace que la salida sea pequeña y confiable. Llevar una imagen a través de significa extraerla del PDF, decidir su formato, escribirla en word/media/, agregándole un tipo de contenido, agregando una parte de relación y colocando un elemento de dibujo en el punto derecho del flujo. Cada uno de ellos es un lugar para que un lector rechace el archivo, y un .docx que un procesador de textos se niega a abrir es peor que uno que le falta un logotipo.
Es más importante para los documentos donde una imagen es el contenido en lugar de la decoración. Un gráfico en un informe se convierte en nada, y un lector del archivo de palabras no tiene forma de saber que un gráfico estuvo allí. Compruebe el original junto con la conversión cuando se hace referencia a una figura en la prosa.
¿Por qué el archivo a veces se niega a abrirse?
Control de caracteres, que contiene XML y archivos PDF.
Una capa de texto de PDF recoge caracteres de lo que sea que lo produzca: se alimenta de un formulario de impresión, bytes nulos de una codificación rota, otros códigos de control C0 que no significan nada en un documento. XML 1.0 No permite la mayoría de ellos, incluso escapados: el rango de caracteres que permite la especificación comienza en la pestaña, la nueva línea y el retorno de carro y se salta el resto del bloque C0.
El fracaso no es agraciado. Word no advierte ni suelta el carácter; se niega a abrir el archivo y dice que el contenido no se puede leer. Entonces, el convertidor despoja a esos personajes antes de escribir, en lugar de tratar de escapar de ellos. No tenían ningún significado en la fuente y le costarían todo el documento.
Si alguna vez recibe un .docx que un procesador de textos rechaza como ilegible, esto es lo primero que debe sospechar, y es por eso que un convertidor que escribe XML a mano tiene que pensar en ello.
¿Debería convertir a Word oa texto sin formato?
Word Si vas a editarlo, envía un mensaje de texto si vas a procesarlo.
Comparten la misma extracción. La diferencia es solo lo que se escribe al final: uno escribe párrafos en un zip de xml, el otro los escribe en un archivo .txt.
| Quieres | aprovechamiento | porque |
|---|---|---|
| Edita la prosa y envíala | PDF a palabra | Estructura de párrafo, saltos de página, algo que un colega puede abrir |
| Buscar, grep o alimentarlo a un script | PDF a texto | Sin margen de beneficio en el camino |
| Mantenga el diseño exactamente | Ni tampoco | Edita el PDF, o consigue el archivo original |
| Leer un escaneo | OCR primero | No hay una capa de texto para extraer |
La tercera fila es la que vale la pena sentarse. Si el diseño es lo que importa, convertir a Word es la dirección incorrecta, porque la conversión es donde se pierde el diseño. Pregunte a quien envió el PDF para el archivo desde el que se exportó. Se necesita un mensaje y es el único enfoque que mantiene el formato.
¿Cuánto tiempo toma la conversión?
Lo suficiente para leer el archivo, y ya no.
No hay un paso de codificación ni procesamiento de imágenes. El trabajo es analizar la estructura PDF, extraer el contenido de texto de cada página, agrupar ejecuciones y serializar XML en un ZIP. El archivo de prueba tomó unos pocos milisegundos, lo cual no es un número útil porque tenía tres páginas. Un informe de doscientas páginas está delimitado por PDF.js que lo analiza, que es aproximadamente lineal en el número de páginas y rápido.
Lo que sí observa en un documento grande es la memoria, porque todo el archivo se mantiene en la pestaña del navegador junto con la estructura analizada. Ese es el techo real aquí en lugar de la velocidad.
¿Qué debes comprobar en la salida?
Cuatro cosas, en el orden, es probable que estén equivocadas.
- El primer párrafo de cada página. Aquí es donde aparecen las combinaciones de intercalación de columna y rumbo.
- cualquier mesa. Confirme que los números están presentes, luego acepte que la cuadrícula se ha ido y reconstruya si la necesita.
- Palabras con guión en los extremos de la línea. Una palabra dividida en una línea en el PDF vuelve con el guión en el medio.
- Recuento de páginas. Debe coincidir con el original, incluidas las páginas en blanco o escaneadas.
Esa lista tarda un minuto en un documento de diez páginas y es la diferencia entre un archivo que puede enviar y uno que contiene silenciosamente una oración empalmada.
¿Por qué se ejecuta esto en el navegador?
Debido a que los documentos que la gente convierte son contratos, declaraciones, cartas, resultados médicos y cosas bajo el embargo.
La conversión es un análisis y un zip, los cuales un navegador funciona perfectamente bien. El archivo se lee desde su disco en la página, se analiza allí con pdf.js compilado para la web, se ensambla en un .docx en memoria y se devuelve como descarga. Ninguna solicitud lleva el documento, no se almacena nada en un servidor y no existe nada para que nadie lo elimine más tarde.
La alternativa habitual es un sitio que toma tu PDF, lo convierte en una máquina de la que no sabes nada y te envía un enlace por correo electrónico. para un folleto público que está bien. Para un contrato de trabajo es una decisión que no se le pidió que tomara conscientemente.
El costo es la memoria de la pestaña en archivos muy grandes y no hay OCR del lado del servidor para las páginas escaneadas. Ambos son límites visibles en lugar de silenciosos, que es el comercio que vale la pena tener.



