¿Por qué se extrae en serie el PDF de dos columnas? Mantenga las coordenadas primero y luego hable sobre el orden de lectura.

Explique que la serialización de texto PDF de dos columnas se debe a la falta de estructura semántica del formato, aclare que el parámetro de clasificación es solo una clasificación geométrica. Se proporciona un ejemplo sintético de Python basado en la partición de coordenadas para demostrar la lógica de reorganización de secuencias, aclarar los límites aplicables y las líneas rojas de revisión manual, y proporcionar una ruta de aceptación pragmática que conecta el flujo de trabajo de traducción de OmniDoc.

Las secuencias de texto extraídas de archivos PDF de dos columnas a menudo no se reconocen incorrectamente, pero se leen en el orden incorrecto. Este artículo está dirigido a lectores que necesitan extraer texto de archivos PDF de dos columnas, como artículos e informes, y luego traducirlos u organizarlos.

Los lectores suelen encontrarse con esta situación: a la mitad de la columna de la izquierda, la siguiente oración va seguida de la explicación de la fórmula en la columna de la derecha. Es posible que todos los personajes se reconozcan correctamente, pero el orden se altera. Este artículo primero explica por qué ocurre la serialización y luego utiliza un ejemplo sintético para demostrar cómo reorganizar el orden mediante la partición por coordenadas. Finalmente, proporciona los límites aplicables y la lista de aceptación para que pueda juzgar si se puede utilizar en sus propios archivos.

¿Por qué se extrae en serie el PDF de dos columnas? Conclusión de una frase

Mantenga primero las coordenadas y la página de origen y luego ordene según las reglas regionales. No comprima directamente toda la página en una cadena larga.

tu situaciónPrácticas recomendadasrazón
Documento ordinario a dos columnas, serialización de texto.Lea primero la columna izquierda de una sección, luego lea la columna derechaEl empalme alternativo línea por línea destruirá los párrafos
Sólo quería intentarlo rápidamente.Compare los resultados de activar y desactivar sortsort solo realiza clasificación geométrica, adecuada para páginas de reglas
Las páginas tienen títulos entre columnas, notas al margen y notas al pie.Procese por separado por región y verifique las relaciones regionalesLa clasificación geométrica por sí sola no puede determinar la atribución de estos contenidos.
Necesita ser entregado al modelo de traducción.Mantenga las coordenadas y los números de página, organice el orden primero y luego traduzcaLos contextos en el orden incorrecto son difíciles de remediar incluso cambiando el modelo.

¿Por qué el pedido está en mal estado?

PDF registra la posición de cada párrafo de texto, no "¿qué párrafo es este y a qué columna pertenece?" Cuando la herramienta de extracción genera por coordenadas, si no hay reglas de área, el texto de las columnas izquierda y derecha puede estar entrelazado.

Estos problemas no surgen necesariamente durante la fase de identificación. Quizás todas las palabras se mencionen correctamente, pero en el orden incorrecto. Por lo tanto, la idea de la solución debe centrarse en la clasificación y la zonificación, en lugar de cambiar repetidamente los enlaces de reconocimiento o traducción.

Mantenga las coordenadas primero y luego hable sobre el orden de lectura.

Antes de resolver el problema de ordenamiento, conserve las coordenadas y la página de origen del texto. No se apresure a comprimir toda la página en una cadena larga.

  • Mantener las cuatro coordenadas de cada bloque de texto para facilitar el posterior juicio de propiedad del área.
  • Mantenga el número de página de origen para facilitar el seguimiento y la verificación manual.
  • Una vez que se pierde la información regional, las traducciones posteriores obtendrán el contexto incorrecto y es posible que cambiar el modelo de traducción no pueda remediarlo.

sort=Vale la pena intentarlo, pero no comprende el diseño

PyMuPDF proporciona diferentes formas de extracción, como texto, palabras, bloques, etc. El procesamiento específico de sort varía según el tipo y la versión de salida. En general, no se puede describir como un algoritmo de composición tipográfica fija, ni se puede prometer que restaurará el orden de lectura de todos los documentos.

Las sugerencias de uso son las siguientes:

  • Para la página de reglas, primero puede comparar los resultados de activar y desactivar la clasificación.
  • Para páginas con títulos entre columnas, notas al margen y notas al pie, se debe verificar nuevamente la relación del área.
  • El PDF puede contener etiquetas estructurales, pero esto no significa que la interfaz de extracción utilizada actualmente le proporcionará automáticamente el árbol de párrafos semánticos que necesita.

Este artículo no implementa el reconocimiento de diseño universal, solo demuestra "cómo ordenar según las reglas regionales existentes" y explica claramente los límites de las capacidades. Para conocer la interfaz y el formulario de extracción, consulte Guía oficial de extracción de texto de PyMuPDF.

Utilice cinco bloques de texto sintetizados para explicar el problema.

La página de ejemplo tiene 600 puntos de ancho, con un límite de 300 puntos entre columnas; dentro de los 80 puntos de la parte superior está el área de título entre columnas y debajo está el área de texto. La entrada está codificada deliberadamente: el segundo párrafo de la columna de la derecha aparece primero y el primer párrafo de la columna de la izquierda aparece al final. Cada tupla contiene las cuatro coordenadas del rectángulo y el texto. Esta es una estructura simplificada definida con fines de demostración y no es equivalente al valor de retorno completo de get_text("blocks").

El resultado esperado debe ser: título, primer párrafo en la columna de la izquierda, segundo párrafo en la columna de la izquierda, primer párrafo en la columna de la derecha, segundo párrafo en la columna de la derecha. Los bloques de texto que cruzan los límites de las columnas deben ir a la lista de excepciones en lugar de descartarse silenciosamente o colocarse con calzador en la columna de la izquierda.

Un pequeño ejemplo que se puede ejecutar por completo.

Los siguientes ejemplos solo utilizan la biblioteca estándar de Python. Al conectarse a PyMuPDF, puede conservar los primeros cinco campos de los resultados de extracción de bloques y excluir primero los bloques que no sean de texto. El ejemplo no abre archivos externos, no requiere OCR y no infiere automáticamente los límites de las columnas.

def order_known_layout(blocks, split_x=300, title_bottom=80):
    groups = {"title": [], "left": [], "right": []}
    rejected = []
    for block in blocks:
        x0, y0, x1, y1, text = block
        if x1 <= x0 or y1 <= y0:
            rejected.append(block)
            continue
        if y1 <= title_bottom:
            region = "title"
        elif y0 < title_bottom:
            rejected.append(block)
            continue
        elif x1 <= split_x:
            region = "left"
        elif x0 >= split_x:
            region = "right"
        else:
            rejected.append(block)
            continue
        groups[region].append(block)
    ordered = []
    for region in ("title", "left", "right"):
        ordered.extend(sorted(groups[region], key=lambda b: (b[1], b[0])))
    return [b[4] for b in ordered], rejected

sample = [(330, 160, 550, 190, "R2"), (40, 100, 270, 130, "L1"),
          (40, 20, 550, 50, "TITLE"), (330, 100, 550, 130, "R1"),
          (40, 160, 270, 190, "L2")]
ordered, rejected = order_known_layout(sample)
assert ordered == ["TITLE", "L1", "L2", "R1", "R2"]
assert rejected == []
wide = (40, 220, 550, 250, "FULL WIDTH BODY")
assert order_known_layout(sample + [wide])[1] == [wide]
assert order_known_layout([]) == ([], [])
print("known-layout examples: 3 assertions passed")

Los 80 y 300 del ejemplo provienen de la configuración de esta página compuesta y no son umbrales empíricos que se apliquen a todos los archivos PDF. Cuando cambia el ancho de las columnas izquierda y derecha de la página siguiente, si se utilizan los parámetros de la página anterior, puede ocurrir "el programa se ejecuta normalmente pero el contenido es incorrecto". Las reglas regionales deben seguir la página, al menos registrar la versión de la regla y el tamaño de la página.

📊 Comparación central

Método de procesamiento¿Qué se puede hacer?A que prestar atención
Utilice sort=True directamenteRealizar clasificación geométrica por coordenadas. Puedes probarlo primero en la página de reglas.No entiendo la propiedad de los títulos entre columnas, notas al margen y notas al pie
Ordenar según la partición de coordenadasPrimero divida el área y luego lea por sección para facilitar la inspección.El umbral de partición depende de la página y debe verificarse por página.
Orden de lectura anotado manualmenteEl resultado es el más controlable y adecuado para la verificación de documentos clave.Alto costo, adecuado para controles aleatorios y puntos de referencia.

No se limite a comprobar si hay errores durante la aceptación

comprobar artículosque verQué hacer cuando no coincide
Orden de áreaDespués del título, primero la columna completa de la izquierda, luego la columna completa de la derecha.Verifique las reglas de partición y no parchee cambiando cadenas
conservación del contenidoEl número de bloques aceptados más el número de bloques rechazados es igual al número de bloques de entradaBloquee la entrega y verifique si hay pérdida de bloqueo silencioso
Texto de barra transversalaparecer en la lista de denegadosAgregue una nueva sección de obstáculos o envíela a evaluación manual
Rotar y recortarEl bloque de entrada utiliza el mismo sistema de coordenadas que la partición.Primero unifique las coordenadas y luego haga un juicio de inclusión
Encabezado, pie de páginaCategorizado por separado por reglas comercialesNo elimines todo el texto inferior

Un artículo real también puede tener una estructura como esta: inserte una figura de columnas cruzadas en el medio y reinicie columnas dobles debajo de la figura. En este momento, la página primero debe dividirse en las secciones superior e inferior y luego ordenarse por separado. Los tres grupos de particiones de este artículo no son suficientes. La dirección de lectura aquí no debe aplicarse al diseño vertical chino, al texto de derecha a izquierda ni a los márgenes complejos.

🎯 ¿Qué método es el adecuado para ti?

si usted……

  • Solo páginas de una o dos columnas que necesitan procesar reglas: primero compare los resultados de activar y desactivar sort y luego decida si se necesitan reglas de partición.
  • Maneje artículos con títulos, figuras o notas a pie de página distribuidos: divida las páginas por secciones y establezca listas de excepciones para el contenido distribuido.
  • La traducción debe entregarse a otras personas: Guarde las coordenadas y números de página, y revíselos uno por uno según la lista de aceptación. No se limite a comprobar si hay errores durante la operación.
  • No desea mantener los guiones usted mismo: puede utilizar directamente herramientas de traducción de documentos ya preparadas y verificar la traducción con el mismo conjunto de listas de verificación secuenciales.

Cómo recibir el proceso de traducción de OmniDoc

El valor de los guiones autoconstruidos radica en escribir claramente las reglas de aceptación; El valor de las herramientas de traducción listas para usar radica en reducir los vínculos operativos entre archivos y traducciones. No hay conflicto entre los dos. OmniDoc (portal de productos) proporciona un portal de traducción de documentos y el sitio web oficial también presenta funciones como OCR, glosario y comparación bilingüe. Puede seleccionar un documento no sensible que tenga permiso para cargar y verificar la traducción usando la misma lista de verificación secuencial.

Concéntrese en comprobar los siguientes elementos:

  • Si la primera frase después del título entre columnas está conectada correctamente.
  • ¿Se han incorporado al texto los pies de las figuras?
  • Si las referencias a las notas a pie de página aún se corresponden con la ubicación correcta.

Se trata de evaluar los resultados, no de inferir los algoritmos internos de OmniDoc. Si los resultados no cumplen con los requisitos, conserve la página original y la sección de error, primero averigüe si el problema radica en el proceso de reconocimiento, clasificación o traducción y luego decida cómo corregirlo.

❓ Preguntas frecuentes (FAQ)

1. Serie PDF de dos columnas, ¿se reconoce incorrectamente?

incierto. Es posible que todas las palabras se reconozcan correctamente, pero el problema a menudo radica en el orden de lectura, por lo que primero se deben verificar las reglas regionales y de clasificación.

2. ¿Puede sort=True resolver directamente el problema del orden de doble columna?

No se puede generalizar. El manejo de sort varía según el tipo y la versión de salida, no comprende el diseño y no puede prometer restaurar el orden de lectura de todos los documentos. Puede probar primero la página de reglas y también debe verificar la relación regional para las páginas con contenido entre columnas.

3. ¿Por qué no se puede comprimir toda la página en una cadena larga?

Una vez que se pierden las coordenadas y la información del área, las traducciones posteriores obtendrán el contexto incorrecto y es posible que cambiar un modelo de traducción no pueda remediarlo.

4. ¿Se pueden usar los 80 puntos y 300 puntos del ejemplo directamente en otros archivos PDF?

no puedo. Son solo las configuraciones para esta página compuesta. Cuando cambia el tamaño de la página o el ancho de la columna, la versión de la regla debe verificarse y registrarse por separado página por página.

📝 Resumen

Para las emisiones de pedidos en archivos PDF de dos columnas, las coordenadas y las páginas de origen deben conservarse primero, luego procesarse utilizando las reglas regionales y verificarse artículo por artículo de acuerdo con la lista de verificación de aceptación. Los scripts de creación propia son adecuados para escribir reglas con claridad y las herramientas listas para usar son adecuadas para reducir los enlaces operativos. Los dos se pueden utilizar juntos.

Pruébelo ahora: cargue el documento para comenzar la traducción, conservando el diseño original

Actualizado 2026-11-13