PDF: paragraph breaks inserted inside sentences (prose corrupted at arbitrary line gaps)

Abierto
#2,370 1 comentario 1 reacción 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
55/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
tooling

Línea de trabajo

Empieza reproduciendo el problema con la CLI de markitdown y el archivo vinculado MD-No-229.pdf; después, compara el Markdown generado con la prosa continua esperada. Revisa la ruta de conversión de PDF responsable del tratamiento de los párrafos y los saltos de línea; se considerará terminado cuando se eliminen los saltos de línea que dividen las líneas, pero se conserven los límites reales entre párrafos, incluidos los de los fragmentos proporcionados.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Environment

  • markitdown 0.1.4 (CLI: markitdown input.pdf)
  • macOS 15 — reproduced on multiple official UAE government PDFs; deterministic per file

Summary

PDF → Markdown conversion inserts paragraph breaks inside sentences. The breaks do not correspond to paragraph boundaries in the source PDF — they fall at seemingly arbitrary line gaps within continuous prose. For LLM-ingestion use cases, paragraph breaks are semantic boundaries, so this silently corrupts the text.

Reproducer (official public PDF)

https://tax.gov.ae/Datafolder/Files/Pdf/2025/MD-No-229.pdf — UAE Ministerial Decision 229/2025, English column, 12 pages. Command: markitdown MD-No-229.pdf

Actual output (verbatim excerpts)

Title — a single running title in the PDF:

Qualifying Activities and Excluded Activities for the Purposes

of Federal Decree-Law No. 47 of 2022 on the Taxation of

Corporations and Businesses

Recital list — the continuation its amendments, starts lowercase, yet becomes its own paragraph:

–  Federal Decree-Law No. 47 of 2022 on the Taxation of Corporations and Businesses, and

its amendments,

Body prose — break inserted mid-sentence before a parenthetical:

distribution, warehousing, logistics or inventory management functions constitutes 51%

(fifty one percent) or more of their Revenue for the relevant Tax Period.
Expected output

Line wraps collapsed to continuous prose; paragraph breaks only at real paragraph boundaries:

Qualifying Activities and Excluded Activities for the Purposes of Federal Decree-Law No. 47 of 2022 on the Taxation of Corporations and Businesses

–  Federal Decree-Law No. 47 of 2022 on the Taxation of Corporations and Businesses, and its amendments,

distribution, warehousing, logistics or inventory management functions constitutes 51% (fifty one percent) or more of their Revenue for the relevant Tax Period.

Impact

Observed on 5+ official UAE MoF/FTA PDFs (legal texts). Splits are deterministic per file and land inside sentences every few paragraphs. Pipelines that treat the Markdown as structured text (LLM chunking, diffing, citation anchoring) inherit corrupted sentence boundaries.

Relationship to existing issues

Not covered by #83 (text relationship/indentation), #293 / #1419 (tables), or #45 (formulas) — this is plain prose in text-heavy PDFs; no tables, formulas, or markers involved.

Happy to provide additional sample files.

Lenguaje dominante
Python
Estrellas
194k
Forks
14.5k
Merge medio
22 min
PR fusionados (30 d)
5

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de microsoft/markitdown

Todos los issues de microsoft/markitdown

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.