paddleocr icon
productivity

paddleocr

Open-source PDF-to-markdown conversion that keeps images and tables in place, but still corrupts text and complex structure on harder documents.

Visit paddleocr
Open sourcePDF to markdownOCR + layout parsingRetains images as files
TL;DR — our verdictUpdated August 2026 · 20 test artifacts

Strong layout retention, but not clean enough to trust without review

Where it wins
  • You need a self-hosted open-source PDF-to-markdown pipeline for mixed documents with text, tables, charts, and images.
  • You can tolerate some post-processing when tables are complex or when native-digital text is not perfectly preserved.
  • You want extracted photos, seals, signatures, and charts to stay embedded as real image files in the output.
Main limitation
  • You need near-perfect paragraph OCR from clean digital PDFs with no cleanup.
Pricing (verified plans)
Open source Free
Strongest test artifacts

Our take

PaddleOCR’s PP-StructureV3 is a capable self-hosted PDF-to-markdown pipeline: it reliably exports mixed PDFs, keeps charts/photos/signatures as real image files, and preserves many table values. But body text can lose words or digits, wide or rowspan-heavy tables break structurally, headings are inconsistent, and some logos are dropped entirely. It’s useful when you can tolerate cleanup, not when you need near-perfect markdown out of the box.

Google Colab walkthrough of the PaddleOCR PDF-to-markdown workflow.

In-Depth Review

Our detailed analysis of paddleocr — features, performance, and real-world testing.

AD
AI Demos Team
Expert Reviewer
Verified Review

Feature-by-Feature Breakdown

OCR text extraction from mixed PDF pages
mixed
Test Summary
Feature tested: OCR text extraction from mixed PDF pages
Result: Partial — mixed

Feature tested: OCR text extraction from mixed PDF pages

Result: Partial

Verdict: mixed

Expected behavior: Extracts body text from both native-digital and scanned PDF pages into markdown. In the hybrid earnings report, table-heavy financial report, and scanned research paper, it could recover text but sometimes lost words, letters, or digits depending on document type.

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Native-digital paragraph from the hybrid earnings report. — paddleocr_input1_hybridearnings_intro_paragraph.png

Observed output: Output artifact (Image): The paragraph is garbled with fused words and dropped letters, showing real content loss in a clean digital PDF. — paddleocr_input1_hybridearnings_intro_paragraph_parsed_failure.png

Input artifact: Input artifact (Image): Native-digital paragraph from the hybrid earnings report. — paddleocr_input1_hybridearnings_intro_paragraph.png

Output artifact: Output artifact (Image): The paragraph is garbled with fused words and dropped letters, showing real content loss in a clean digital PDF. — paddleocr_input1_hybridearnings_intro_paragraph_parsed_failure.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Opening sentence from a financial-report paragraph. — paddleocr_input2_financialpdf_total_assets_sentence.png

Observed output: Output artifact (Image): The opening sentence is missing entirely and the output starts mid-sentence, so text can be silently omitted. — paddleocr_input2_financialpdf_total_assets_sentence_parsed_failure.png

Input artifact: Input artifact (Image): Opening sentence from a financial-report paragraph. — paddleocr_input2_financialpdf_total_assets_sentence.png

Output artifact: Output artifact (Image): The opening sentence is missing entirely and the output starts mid-sentence, so text can be silently omitted. — paddleocr_input2_financialpdf_total_assets_sentence_parsed_failure.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Abstract paragraph from the scanned research paper. — paddleocr_input3_scannedpaper_abstract_paragraph.png

Observed output: Output artifact (Image): Every word is preserved correctly on the genuine scan; the main defect is dropped spacing rather than lost content. — paddleocr_input3_scannedpaper_abstract_paragraph_parsed_success.png

Input artifact: Input artifact (Image): Abstract paragraph from the scanned research paper. — paddleocr_input3_scannedpaper_abstract_paragraph.png

Output artifact: Output artifact (Image): Every word is preserved correctly on the genuine scan; the main defect is dropped spacing rather than lost content. — paddleocr_input3_scannedpaper_abstract_paragraph_parsed_success.png

What changed: Image transformed into Image

Why it matters / Conclusion: Strong on clean scanned text, but native-digital paragraphs can still lose words or digits, so the OCR layer is not uniformly trustworthy.

Extracts body text from both native-digital and scanned PDF pages into markdown. In the hybrid earnings report, table-heavy financial report, and scanned research paper, it could recover text but sometimes lost words, letters, or digits depending on document type.

image
Input artifact for "OCR text extraction from mixed PDF pages" test: Native-digital paragraph from the hybrid earnings report., paddleocr_input1_hybridearnings_intro_paragraph.png
Native-digital paragraph from the hybrid earnings report.
image
Output artifact for "OCR text extraction from mixed PDF pages" test: The paragraph is garbled with fused words and dropped letters, showing real content loss in a clean digital PDF., paddleocr_input1_hybridearnings_intro_paragraph_parsed_failure.png
The paragraph is garbled with fused words and dropped letters, showing real content loss in a clean digital PDF.
image
Input artifact for "OCR text extraction from mixed PDF pages" test: Opening sentence from a financial-report paragraph., paddleocr_input2_financialpdf_total_assets_sentence.png
Opening sentence from a financial-report paragraph.
image
Output artifact for "OCR text extraction from mixed PDF pages" test: The opening sentence is missing entirely and the output starts mid-sentence, so text can be silently omitted., paddleocr_input2_financialpdf_total_assets_sentence_parsed_failure.png
The opening sentence is missing entirely and the output starts mid-sentence, so text can be silently omitted.
image
Input artifact for "OCR text extraction from mixed PDF pages" test: Abstract paragraph from the scanned research paper., paddleocr_input3_scannedpaper_abstract_paragraph.png
Abstract paragraph from the scanned research paper.
image
Output artifact for "OCR text extraction from mixed PDF pages" test: Every word is preserved correctly on the genuine scan; the main defect is dropped spacing rather than lost content., paddleocr_input3_scannedpaper_abstract_paragraph_parsed_success.png
Every word is preserved correctly on the genuine scan; the main defect is dropped spacing rather than lost content.
Bottom Line
Strong on clean scanned text, but native-digital paragraphs can still lose words or digits, so the OCR layer is not uniformly trustworthy.
Table reconstruction
mixed
Test Summary
Feature tested: Table reconstruction
Result: Partial — mixed

Feature tested: Table reconstruction

Result: Partial

Verdict: mixed

Expected behavior: Converts financial tables into markdown/HTML tables and usually preserves labels and values. The exercised inputs include small tables, larger wrapped-label tables, rowspan headers, and side-by-side layouts where structural fidelity becomes fragile.

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Small REDcard Penetration table. — paddleocr_input1_hybridearnings_redcard_penetration_table.png

Observed output: Output artifact (Image): The small table is reconstructed exactly, with header-to-value alignment preserved. — paddleocr_input1_hybridearnings_redcard_penetration_table_parsed_success.png

Input artifact: Input artifact (Image): Small REDcard Penetration table. — paddleocr_input1_hybridearnings_redcard_penetration_table.png

Output artifact: Output artifact (Image): The small table is reconstructed exactly, with header-to-value alignment preserved. — paddleocr_input1_hybridearnings_redcard_penetration_table_parsed_success.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Wide Financial Summary table. — paddleocr_input1_hybridearnings_financial_summary_table.png

Observed output: Output artifact (Image): Most values are correct, but a wrapped row label causes row splitting and the following row loses its last column. — paddleocr_input1_hybridearnings_financial_summary_table_parsed_partial_success.png

Input artifact: Input artifact (Image): Wide Financial Summary table. — paddleocr_input1_hybridearnings_financial_summary_table.png

Output artifact: Output artifact (Image): Most values are correct, but a wrapped row label causes row splitting and the following row loses its last column. — paddleocr_input1_hybridearnings_financial_summary_table_parsed_partial_success.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Orders Received table with rowspan headers and a total row. — paddleocr_input2_financialpdf_orders_received_table.png

Observed output: Output artifact (Image): The data rows are mostly correct, but the rowspan header block is scrambled and the final Total row is dropped. — paddleocr_input2_financialpdf_orders_received_table_parsed_partial_success.png

Input artifact: Input artifact (Image): Orders Received table with rowspan headers and a total row. — paddleocr_input2_financialpdf_orders_received_table.png

Output artifact: Output artifact (Image): The data rows are mostly correct, but the rowspan header block is scrambled and the final Total row is dropped. — paddleocr_input2_financialpdf_orders_received_table_parsed_partial_success.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Complex table from the scanned research paper. — paddleocr_input3_scannedpaper_table6_predicted_loss.png

Observed output: Output artifact (Image): The table keeps most numeric values, but a wrapped row label splits and another label loses a digit. — paddleocr_input3_scannedpaper_table6_predicted_loss_parsed_partial_success.png

Input artifact: Input artifact (Image): Complex table from the scanned research paper. — paddleocr_input3_scannedpaper_table6_predicted_loss.png

Output artifact: Output artifact (Image): The table keeps most numeric values, but a wrapped row label splits and another label loses a digit. — paddleocr_input3_scannedpaper_table6_predicted_loss_parsed_partial_success.png

What changed: Image transformed into Image

Why it matters / Conclusion: Good at reading table content, but structural fidelity breaks down on complex tables long before the data values themselves do.

Converts financial tables into markdown/HTML tables and usually preserves labels and values. The exercised inputs include small tables, larger wrapped-label tables, rowspan headers, and side-by-side layouts where structural fidelity becomes fragile.

image
Input artifact for "Table reconstruction" test: Small REDcard Penetration table., paddleocr_input1_hybridearnings_redcard_penetration_table.png
Small REDcard Penetration table.
image
Output artifact for "Table reconstruction" test: The small table is reconstructed exactly, with header-to-value alignment preserved., paddleocr_input1_hybridearnings_redcard_penetration_table_parsed_success.png
The small table is reconstructed exactly, with header-to-value alignment preserved.
image
Input artifact for "Table reconstruction" test: Wide Financial Summary table., paddleocr_input1_hybridearnings_financial_summary_table.png
Wide Financial Summary table.
image
Output artifact for "Table reconstruction" test: Most values are correct, but a wrapped row label causes row splitting and the following row loses its last column., paddleocr_input1_hybridearnings_financial_summary_table_parsed_partial_success.png
Most values are correct, but a wrapped row label causes row splitting and the following row loses its last column.
image
Input artifact for "Table reconstruction" test: Orders Received table with rowspan headers and a total row., paddleocr_input2_financialpdf_orders_received_table.png
Orders Received table with rowspan headers and a total row.
image
Output artifact for "Table reconstruction" test: The data rows are mostly correct, but the rowspan header block is scrambled and the final Total row is dropped., paddleocr_input2_financialpdf_orders_received_table_parsed_partial_success.png
The data rows are mostly correct, but the rowspan header block is scrambled and the final Total row is dropped.
image
Input artifact for "Table reconstruction" test: Complex table from the scanned research paper., paddleocr_input3_scannedpaper_table6_predicted_loss.png
Complex table from the scanned research paper.
image
Output artifact for "Table reconstruction" test: The table keeps most numeric values, but a wrapped row label splits and another label loses a digit., paddleocr_input3_scannedpaper_table6_predicted_loss_parsed_partial_success.png
The table keeps most numeric values, but a wrapped row label splits and another label loses a digit.
Bottom Line
Good at reading table content, but structural fidelity breaks down on complex tables long before the data values themselves do.
Embedded visual retention
mixed
Test Summary
Feature tested: Embedded visual retention
Result: Partial — mixed

Feature tested: Embedded visual retention

Result: Partial

Verdict: mixed

Expected behavior: Retains non-text visual elements from PDFs as real cropped image files placed near their original location. The cards exercise this on charts/figures as well as photos, signatures, seals, and logos, with some cases collapsing or disappearing entirely.

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Cluster of charts from the hybrid earnings report. — paddleocr_input1_hybridearnings_financial_highlights_charts.png

Observed output: Output artifact (Image): Nine chart objects are flattened into one large image block, with no chart values or labels recovered as text. — paddleocr_input1_hybridearnings_financial_highlights_charts_parsed_failure.png

Input artifact: Input artifact (Image): Cluster of charts from the hybrid earnings report. — paddleocr_input1_hybridearnings_financial_highlights_charts.png

Output artifact: Output artifact (Image): Nine chart objects are flattened into one large image block, with no chart values or labels recovered as text. — paddleocr_input1_hybridearnings_financial_highlights_charts_parsed_failure.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Total-return line chart from the hybrid earnings report. — paddleocr_input1_hybridearnings_total_return_chart.png

Observed output: Output artifact (Image): The chart is retained as a correctly scoped image, but no chart data is reconstructed. — paddleocr_input1_hybridearnings_total_return_chart_parsed_partial_success.png

Input artifact: Input artifact (Image): Total-return line chart from the hybrid earnings report. — paddleocr_input1_hybridearnings_total_return_chart.png

Output artifact: Output artifact (Image): The chart is retained as a correctly scoped image, but no chart data is reconstructed. — paddleocr_input1_hybridearnings_total_return_chart_parsed_partial_success.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Figure 1 bar chart from the scanned paper. — paddleocr_input3_scannedpaper_figure1_chart.png

Observed output: Output artifact (Image): The chart is preserved as its own image and captioned correctly, but the values are not extracted. — paddleocr_input3_scannedpaper_figure1_chart_parsed_partial_success.png

Input artifact: Input artifact (Image): Figure 1 bar chart from the scanned paper. — paddleocr_input3_scannedpaper_figure1_chart.png

Output artifact: Output artifact (Image): The chart is preserved as its own image and captioned correctly, but the values are not extracted. — paddleocr_input3_scannedpaper_figure1_chart_parsed_partial_success.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): CEO photo page from the hybrid earnings report. — paddleocr_input1_hybridearnings_ceo_photo.png

Observed output: Output artifact (Image): The photo is retained as a real inline image tag in the parsed markdown. — paddleocr_input1_hybridearnings_ceo_photo_parsed_success.png

Input artifact: Input artifact (Image): CEO photo page from the hybrid earnings report. — paddleocr_input1_hybridearnings_ceo_photo.png

Output artifact: Output artifact (Image): The photo is retained as a real inline image tag in the parsed markdown. — paddleocr_input1_hybridearnings_ceo_photo_parsed_success.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): USDA shield seal from the scanned paper. — paddleocr_input3_scannedpaper_usda_shield_page1.png

Observed output: Output artifact (Image): The seal is retained as a real inline image, not dropped or flattened to text. — paddleocr_input3_scannedpaper_usda_shield_page1_parsed_success.png

Input artifact: Input artifact (Image): USDA shield seal from the scanned paper. — paddleocr_input3_scannedpaper_usda_shield_page1.png

Output artifact: Output artifact (Image): The seal is retained as a real inline image, not dropped or flattened to text. — paddleocr_input3_scannedpaper_usda_shield_page1_parsed_success.png

What changed: Image transformed into Image

Why it matters / Conclusion: It reliably keeps chart regions inline, but the output is image-only rather than data-aware.

Retains non-text visual elements from PDFs as real cropped image files placed near their original location. The cards exercise this on charts/figures as well as photos, signatures, seals, and logos, with some cases collapsing or disappearing entirely.

image
Input artifact for "Embedded visual retention" test: Cluster of charts from the hybrid earnings report., paddleocr_input1_hybridearnings_financial_highlights_charts.png
Cluster of charts from the hybrid earnings report.
image
Output artifact for "Embedded visual retention" test: Nine chart objects are flattened into one large image block, with no chart values or labels recovered as text., paddleocr_input1_hybridearnings_financial_highlights_charts_parsed_failure.png
Nine chart objects are flattened into one large image block, with no chart values or labels recovered as text.
image
Input artifact for "Embedded visual retention" test: Total-return line chart from the hybrid earnings report., paddleocr_input1_hybridearnings_total_return_chart.png
Total-return line chart from the hybrid earnings report.
image
Output artifact for "Embedded visual retention" test: The chart is retained as a correctly scoped image, but no chart data is reconstructed., paddleocr_input1_hybridearnings_total_return_chart_parsed_partial_success.png
The chart is retained as a correctly scoped image, but no chart data is reconstructed.
image
Input artifact for "Embedded visual retention" test: Figure 1 bar chart from the scanned paper., paddleocr_input3_scannedpaper_figure1_chart.png
Figure 1 bar chart from the scanned paper.
image
Output artifact for "Embedded visual retention" test: The chart is preserved as its own image and captioned correctly, but the values are not extracted., paddleocr_input3_scannedpaper_figure1_chart_parsed_partial_success.png
The chart is preserved as its own image and captioned correctly, but the values are not extracted.
image
Input artifact for "Embedded visual retention" test: CEO photo page from the hybrid earnings report., paddleocr_input1_hybridearnings_ceo_photo.png
CEO photo page from the hybrid earnings report.
image
Output artifact for "Embedded visual retention" test: The photo is retained as a real inline image tag in the parsed markdown., paddleocr_input1_hybridearnings_ceo_photo_parsed_success.png
The photo is retained as a real inline image tag in the parsed markdown.
image
Input artifact for "Embedded visual retention" test: USDA shield seal from the scanned paper., paddleocr_input3_scannedpaper_usda_shield_page1.png
USDA shield seal from the scanned paper.
image
Output artifact for "Embedded visual retention" test: The seal is retained as a real inline image, not dropped or flattened to text., paddleocr_input3_scannedpaper_usda_shield_page1_parsed_success.png
The seal is retained as a real inline image, not dropped or flattened to text.
Bottom Line
It reliably keeps chart regions inline, but the output is image-only rather than data-aware.
Heading and document hierarchy export
mixed
Test Summary
Feature tested: Heading and document hierarchy export
Result: Partial — mixed

Feature tested: Heading and document hierarchy export

Result: Partial

Verdict: mixed

Expected behavior: Turns section titles into markdown headings to approximate document structure. The tested pages include section titles from reports and a scanned paper, but heading levels and section flattening can be inconsistent.

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Item 1 / General heading region from the hybrid earnings report. — paddleocr_input1_hybridearnings_item1_general_heading.png

Observed output: Output artifact (Image): The sub-section is preserved, but its heading level is inverted relative to its parent section. — paddleocr_input1_hybridearnings_item1_general_heading_parsed_failure.png

Input artifact: Input artifact (Image): Item 1 / General heading region from the hybrid earnings report. — paddleocr_input1_hybridearnings_item1_general_heading.png

Output artifact: Output artifact (Image): The sub-section is preserved, but its heading level is inverted relative to its parent section. — paddleocr_input1_hybridearnings_item1_general_heading_parsed_failure.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Item 6 section heading from the hybrid earnings report. — paddleocr_input1_hybridearnings_item6_heading.png

Observed output: Output artifact (Image): The section title is flattened into centered div text instead of a markdown heading. — paddleocr_input1_hybridearnings_item6_heading_parsed_failure.png

Input artifact: Input artifact (Image): Item 6 section heading from the hybrid earnings report. — paddleocr_input1_hybridearnings_item6_heading.png

Output artifact: Output artifact (Image): The section title is flattened into centered div text instead of a markdown heading. — paddleocr_input1_hybridearnings_item6_heading_parsed_failure.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Document title from the scanned research paper. — paddleocr_input3_scannedpaper_title_heading.png

Observed output: Output artifact (Image): The heading is mostly correct, but unrelated handwritten marginalia is OCR'd into the title itself. — paddleocr_input3_scannedpaper_title_heading_parsed_failure.png

Input artifact: Input artifact (Image): Document title from the scanned research paper. — paddleocr_input3_scannedpaper_title_heading.png

Output artifact: Output artifact (Image): The heading is mostly correct, but unrelated handwritten marginalia is OCR'd into the title itself. — paddleocr_input3_scannedpaper_title_heading_parsed_failure.png

What changed: Image transformed into Image

Why it matters / Conclusion: Useful for rough sectioning, but the heading tree is inconsistent enough that a clean TOC or outline needs manual review.

Turns section titles into markdown headings to approximate document structure. The tested pages include section titles from reports and a scanned paper, but heading levels and section flattening can be inconsistent.

image
Input artifact for "Heading and document hierarchy export" test: Item 1 / General heading region from the hybrid earnings report., paddleocr_input1_hybridearnings_item1_general_heading.png
Item 1 / General heading region from the hybrid earnings report.
image
Output artifact for "Heading and document hierarchy export" test: The sub-section is preserved, but its heading level is inverted relative to its parent section., paddleocr_input1_hybridearnings_item1_general_heading_parsed_failure.png
The sub-section is preserved, but its heading level is inverted relative to its parent section.
image
Input artifact for "Heading and document hierarchy export" test: Item 6 section heading from the hybrid earnings report., paddleocr_input1_hybridearnings_item6_heading.png
Item 6 section heading from the hybrid earnings report.
image
Output artifact for "Heading and document hierarchy export" test: The section title is flattened into centered div text instead of a markdown heading., paddleocr_input1_hybridearnings_item6_heading_parsed_failure.png
The section title is flattened into centered div text instead of a markdown heading.
image
Input artifact for "Heading and document hierarchy export" test: Document title from the scanned research paper., paddleocr_input3_scannedpaper_title_heading.png
Document title from the scanned research paper.
image
Output artifact for "Heading and document hierarchy export" test: The heading is mostly correct, but unrelated handwritten marginalia is OCR'd into the title itself., paddleocr_input3_scannedpaper_title_heading_parsed_failure.png
The heading is mostly correct, but unrelated handwritten marginalia is OCR'd into the title itself.
Bottom Line
Useful for rough sectioning, but the heading tree is inconsistent enough that a clean TOC or outline needs manual review.
Reading-order preservation
mixed
Test Summary
Feature tested: Reading-order preservation
Result: Partial — mixed

Feature tested: Reading-order preservation

Result: Partial

Verdict: mixed

Expected behavior: Keeps content in front-to-back order for most single-column pages and documents. The exercised multi-column layouts show that unrelated blocks can interleave and paragraph boundaries can break at column transitions.

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Three-column owned/exclusive brands section from the hybrid earnings report. — paddleocr_input1_hybridearnings_brand_list.png

Observed output: Output artifact (Image): The two sections are interleaved out of order, so reading order breaks in the multi-column region. — paddleocr_input1_hybridearnings_brand_list_parsed_failure.png

Input artifact: Input artifact (Image): Three-column owned/exclusive brands section from the hybrid earnings report. — paddleocr_input1_hybridearnings_brand_list.png

Output artifact: Output artifact (Image): The two sections are interleaved out of order, so reading order breaks in the multi-column region. — paddleocr_input1_hybridearnings_brand_list_parsed_failure.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Two-column column-break region from the scanned paper. — paddleocr_input3_scannedpaper_study_area_colbreak.png

Observed output: Output artifact (Image): The words stay in the correct sequence, but paragraph boundaries are lost at the column transition. — paddleocr_input3_scannedpaper_study_area_colbreak_parsed_partial_success.png

Input artifact: Input artifact (Image): Two-column column-break region from the scanned paper. — paddleocr_input3_scannedpaper_study_area_colbreak.png

Output artifact: Output artifact (Image): The words stay in the correct sequence, but paragraph boundaries are lost at the column transition. — paddleocr_input3_scannedpaper_study_area_colbreak_parsed_partial_success.png

What changed: Image transformed into Image

Why it matters / Conclusion: Normal linear pages are fine, but multi-column layouts and column breaks still need cleanup.

Keeps content in front-to-back order for most single-column pages and documents. The exercised multi-column layouts show that unrelated blocks can interleave and paragraph boundaries can break at column transitions.

image
Input artifact for "Reading-order preservation" test: Three-column owned/exclusive brands section from the hybrid earnings report., paddleocr_input1_hybridearnings_brand_list.png
Three-column owned/exclusive brands section from the hybrid earnings report.
image
Output artifact for "Reading-order preservation" test: The two sections are interleaved out of order, so reading order breaks in the multi-column region., paddleocr_input1_hybridearnings_brand_list_parsed_failure.png
The two sections are interleaved out of order, so reading order breaks in the multi-column region.
image
Input artifact for "Reading-order preservation" test: Two-column column-break region from the scanned paper., paddleocr_input3_scannedpaper_study_area_colbreak.png
Two-column column-break region from the scanned paper.
image
Output artifact for "Reading-order preservation" test: The words stay in the correct sequence, but paragraph boundaries are lost at the column transition., paddleocr_input3_scannedpaper_study_area_colbreak_parsed_partial_success.png
The words stay in the correct sequence, but paragraph boundaries are lost at the column transition.
Bottom Line
Normal linear pages are fine, but multi-column layouts and column breaks still need cleanup.
Caption and footnote anchoring
preserved
Test Summary
Feature tested: Caption and footnote anchoring
Result: Passed — preserved

Feature tested: Caption and footnote anchoring

Result: Passed

Verdict: preserved

Expected behavior: Keeps captions, unit notes, and footnotes attached to the table or figure they describe, even when the underlying object is degraded. The tested cases include captions under tables and figures where the explanatory text still stays in place.

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Financial Summary footnotes from the hybrid earnings report. — paddleocr_input1_hybridearnings_financial_summary_footnotes.png

Observed output: Output artifact (Image): The footnotes stay directly beneath the table they explain, even though the footnote text itself is only partially parsed. — paddleocr_input1_hybridearnings_financial_summary_footnotes_parsed_partial_success.png

Input artifact: Input artifact (Image): Financial Summary footnotes from the hybrid earnings report. — paddleocr_input1_hybridearnings_financial_summary_footnotes.png

Output artifact: Output artifact (Image): The footnotes stay directly beneath the table they explain, even though the footnote text itself is only partially parsed. — paddleocr_input1_hybridearnings_financial_summary_footnotes_parsed_partial_success.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Business Results table with its unit caption. — paddleocr_input2_financialpdf_business_results_table.png

Observed output: Output artifact (Image): The unit caption remains immediately above the same table in the parsed markdown. — paddleocr_input2_financialpdf_business_results_table_parsed_partial_success.png

Input artifact: Input artifact (Image): Business Results table with its unit caption. — paddleocr_input2_financialpdf_business_results_table.png

Output artifact: Output artifact (Image): The unit caption remains immediately above the same table in the parsed markdown. — paddleocr_input2_financialpdf_business_results_table_parsed_partial_success.png

What changed: Image transformed into Image

Test case: Image → Image

Input type: Image

Input used: Input artifact (Image): Orders Received table with its unit caption. — paddleocr_input2_financialpdf_orders_received_table.png

Observed output: Output artifact (Image): The unit caption stays attached to the correct table rather than drifting to a later section. — paddleocr_input2_financialpdf_orders_received_table_parsed_partial_success.png

Input artifact: Input artifact (Image): Orders Received table with its unit caption. — paddleocr_input2_financialpdf_orders_received_table.png

Output artifact: Output artifact (Image): The unit caption stays attached to the correct table rather than drifting to a later section. — paddleocr_input2_financialpdf_orders_received_table_parsed_partial_success.png

What changed: Image transformed into Image

Why it matters / Conclusion: Captions and footnotes are generally anchored correctly, which helps even when the table or chart itself is imperfect.

Keeps captions, unit notes, and footnotes attached to the table or figure they describe, even when the underlying object is degraded. The tested cases include captions under tables and figures where the explanatory text still stays in place.

image
Input artifact for "Caption and footnote anchoring" test: Financial Summary footnotes from the hybrid earnings report., paddleocr_input1_hybridearnings_financial_summary_footnotes.png
Financial Summary footnotes from the hybrid earnings report.
image
Output artifact for "Caption and footnote anchoring" test: The footnotes stay directly beneath the table they explain, even though the footnote text itself is only partially parsed., paddleocr_input1_hybridearnings_financial_summary_footnotes_parsed_partial_success.png
The footnotes stay directly beneath the table they explain, even though the footnote text itself is only partially parsed.
image
Input artifact for "Caption and footnote anchoring" test: Business Results table with its unit caption., paddleocr_input2_financialpdf_business_results_table.png
Business Results table with its unit caption.
image
Output artifact for "Caption and footnote anchoring" test: The unit caption remains immediately above the same table in the parsed markdown., paddleocr_input2_financialpdf_business_results_table_parsed_partial_success.png
The unit caption remains immediately above the same table in the parsed markdown.
image
Input artifact for "Caption and footnote anchoring" test: Orders Received table with its unit caption., paddleocr_input2_financialpdf_orders_received_table.png
Orders Received table with its unit caption.
image
Output artifact for "Caption and footnote anchoring" test: The unit caption stays attached to the correct table rather than drifting to a later section., paddleocr_input2_financialpdf_orders_received_table_parsed_partial_success.png
The unit caption stays attached to the correct table rather than drifting to a later section.
Bottom Line
Captions and footnotes are generally anchored correctly, which helps even when the table or chart itself is imperfect.

Open source, no per-page fees

Apache 2.0 licensing; compute is the only real cost.

TESTED
Open source
Free
Self-hostable; no per-document billing.

PaddleOCR / PP-StructureV3 is open source under Apache 2.0, with no usage-based API pricing. The report’s runs were done on Google Colab T4 GPU compute, so the practical cost is infrastructure rather than vendor fees.

✓ Use This If
You need a self-hosted open-source PDF-to-markdown pipeline for mixed documents with text, tables, charts, and images.
You can tolerate some post-processing when tables are complex or when native-digital text is not perfectly preserved.
You want extracted photos, seals, signatures, and charts to stay embedded as real image files in the output.
✕ Skip This If
You need near-perfect paragraph OCR from clean digital PDFs with no cleanup.
You need complex table structure, rowspan headers, and multi-column layouts to be structurally exact on the first pass.
You need charts converted into usable data rather than preserved only as images.
productivitydocumentation-toolstextOther
Yes, it keeps chart regions as real inline image files and places them near the source location. In the report, charts were retained, but no chart data, axis labels, or trends were reconstructed as text.
On the scanned research paper, it performed better than on the native-digital PDFs: the checked paragraph preserved the words correctly, and the main defect was dropped spacing rather than lost content. It still did not recover chart data.
It preserves many table values well, but the structure can break on wrapped labels, rowspan-based headers, short total rows, and side-by-side layouts. Small tables were often exact, while larger tables needed cleanup.
Many photos, signatures, seals, and figures were retained as real image tags, but some logos were dropped entirely with no placeholder. Image retention is helpful, but not reliable enough to assume nothing was lost.
Yes. The report identifies it as open source under Apache 2.0, with no per-page or per-document API fees. The practical cost is just the compute you run it on.

Banner Preview

How the embed badge will look on your site

paddleocr featured on AI Demos

Embed HTML

Copy this code to your website source

<a target="_blank" href="https://aidemos.com/tools/paddleocr?utm_source=paddleocr_embed" style="width: 250px; height: 80px; border-radius:4px;" width="250" height="80"> <img src="https://aidemos-website-images.s3.amazonaws.com/featured.png" alt="paddleocr | Featured on AI Demos" style="width: 250px; height: 80px; border-radius:4px;" width="250" height="80"> </a>

Quick Integration Guide

  • 1Copy the HTML code block above.
  • 2Paste it into your site's HTML or CMS editor.
  • 3Banner appears instantly on your page.
  • 4Links back to your tool profile here.
Similar Tools

Similar Tools

Discover more AI tools like paddleocr to enhance your workflow.

Comments (0)

Please Log in to join the discussion.

Built by FutureSmart AI — the team behind AI Demos

Need a custom AI solution for this use case?

If you are looking to build a custom OCR extraction, PDF-to-markdown conversion, or document parsing workflow for your business or internal workflow, email us at contact@futuresmart.ai.

Get a custom build

Found something inaccurate or missing? We try to keep our AI research accurate and useful. If you found outdated information, an issue, or have a suggestion, email us at collaborate@aidemos.com.

Back to Top