Document Structure Recognition
Document Structure Recognition
Apryse's Document Structure Recognition engine helps you capture the visual and logical layout of a document. Unlike tabular extraction, this mode is designed to mimic how a human sees the page — recognizing paragraphs, lists, headers, footers, and images as distinct blocks.
It's ideal for use cases involving:
Accessibility tagging (e.g., reading order)
Screen reading tools
Document reconstruction
Visual layout parsing
How It Works
The engine detects layout elements based on visual positioning, spacing, indentation, and structural boundaries. It separates:
Paragraphs and lists
Headers and footers
Section columns vs table columns
Tables embedded inside paragraphs
Images and graphical elements
JSON Output Specification
Refer to the following specifications to learn more about the output JSON format:
Extract document structure as JSON file
Specify the name of the input PDF file and the name of the output JSON file, then select the Doc Structure engine:
Extract document structure as JSON string
If you are going to parse the JSON right away, you may as well retrieve it as an in-memory string, instead of an external file.
Specify the name of the input PDF file, then select the Doc Structure engine:
Extract document structure as a Markdown file
In addition to JSON, document structure can be extracted directly to Markdown — useful for feeding document content into LLMs, static site generators, or any Markdown-based pipeline.
Specify the name of the input PDF file and the name of the output Markdown file:
Extract document structure using the Paddle OCR engine
For scanned or image-based PDFs, you can choose the Paddle OCR engine for improved accuracy on low-quality scans and complex layouts. See Select OCR Engine for a full comparison of the two engines. Since Paddle does not support automatic language detection, the OCR language must be set explicitly.
The following example shows how to extract document structure as a Markdown file using the Paddle OCR engine.
Optional Configurations
Last updated
Was this helpful?