# PDF extraction trial / PDF 提取实验

Tested 2026-10-16 on Windows 11, Python 3.12.13. MarkItDown 0.1.8, pypdf 6.21.0, PyMuPDF 1.28.2, reportlab 5.0.1. Owned synthetic English fixtures, no real business data. No OCR or LLM. All five PDFs were created before conversion; criteria.json was saved before running the converters.

Exact extraction calls:

```python
MarkItDown().convert(path).text_content
"\n".join(page.extract_text() or "" for page in PdfReader(path).pages)
"\n".join(page.get_text("text", sort=True) for page in pymupdf.open(path))
```

Install the pinned libraries in an isolated Python environment if reproducing. These snippets require the imports and each input path; they are extraction expressions, not a complete installation program. Do not upload confidential files to unknown services. Review each project's current license before redistribution or integration; PyMuPDF has AGPL/commercial licensing, which differs from the other tools.

Check each expected token literally. For columns.pdf only, check STEP-1 through STEP-4 occur in that order. Tokens being present is NOT proof of row pairing, correct layout or overall success. Table pairing is discussed separately by reading the raw text against the PDF. Outputs are not normalized or repaired before publication. Durations are not compared.

The sample names are plain, table, columns, image-only and mixed. The two-column sample explicitly instructs column-first reading but writes the right column first in its PDF stream. The mixed sample has a text page and a raster-image page. Image-only deliberately has no text layer. These constructed edge cases are not a representative population and cannot establish an accuracy percentage.

中文：下载 ZIP 后，先查看 PDF 原页，再读对应提取器的 txt 文件。results.csv 中 completed 仅表示调用没有异常；field_check_pass 只表示预设字串齐全；order_ok 仅适用于两栏样本。它们不等于整体文档通过。扫描页没有启用 OCR，空结果不能解释成产品完全不支持 OCR。样本为英文，不代表中文、复杂表格或实际业务准确率。本文和原始文件均由 Git-Stars 自制，可用于核对本次实验。
