PaddleOCR Document Parsing V2

Parse documents using PaddleOCR's API. Supports both sync and async modes for images and PDFs.

hioTEC

@hiotec

What This Skill Does

Command-line tool that parses images and PDFs using PaddleOCR's API, extracting text with layout analysis in Markdown format. Supports both synchronous mode for small files and asynchronous mode with progress polling for large documents.

Replaces manual OCR setup and complex API integrations by providing a single CLI that handles both sync and async parsing with structured Markdown output.

When to Use It

  • Extract text and layout from scanned PDF invoices
  • Parse multi-page documents with tables and formulas
  • Convert image-based receipts into structured Markdown
  • Process large PDFs with progress tracking via async mode
  • Batch extract text from multiple JPG or PNG screenshots

Install

$ openclaw skills install @hiotec/paddleocr-doc-parsing-v2

PaddleOCR Document Parsing

Parse images and PDF files using PaddleOCR's API. Supports both synchronous and asynchronous parsing modes with structured output.

Resource Links

ResourceLink
Official Websitehttps://www.paddleocr.com
API Documentationhttps://ai.baidu.com/ai-doc/AISTUDIO/Cmkz2m0ma
GitHubhttps://github.com/PaddlePaddle/PaddleOCR

Key Features

  • Multi-format support: PDF and image files (JPG, PNG, BMP, TIFF)
  • Two parsing modes:
    • Sync mode: Fast response for small files (<600s timeout)
    • Async mode: For large files with progress polling
  • Layout analysis: Automatic detection of text blocks, tables, formulas
  • Multi-language: Support for 110+ languages
  • Structured output: Markdown format with preserved document structure

Setup

  1. Visit PaddleOCR to obtain your API credentials
  2. Set environment variables:
export PADDLEOCR_ACCESS_TOKEN="your_token_here"
export PADDLEOCR_API_URL="https://your-endpoint.aistudio-app.com/layout-parsing"

# Optional: For async mode
export PADDLEOCR_JOB_URL="https://your-job-endpoint.aistudio-app.com/api/v2/ocr/jobs"
export PADDLEOCR_MODEL="PaddleOCR-VL-1.5"

Usage Examples

Sync Mode (Default)

For small files and quick processing:

# Parse local image
{baseDir}/paddleocr_parse.sh document.jpg

# Parse PDF
{baseDir}/paddleocr_parse.sh -t pdf document.pdf

# Parse from URL
{baseDir}/paddleocr_parse.sh https://example.com/document.jpg

# Save output to file
{baseDir}/paddleocr_parse.sh -o result.json document.jpg

# Verbose output
{baseDir}/paddleocr_parse.sh -v document.jpg

Async Mode

For large files with progress tracking:

# Parse large PDF with async mode
{baseDir}/paddleocr_parse.sh --async large-document.pdf

# Parse from URL with async mode
{baseDir}/paddleocr_parse.sh --async -t pdf https://example.com/doc.pdf

# Save async result to file
{baseDir}/paddleocr_parse.sh --async -o result.json document.pdf

Using Python Script Directly

# Sync mode
python3 {baseDir}/paddleocr_parse.py document.jpg

# Async mode
python3 {baseDir}/paddleocr_parse.py --async-mode document.pdf

# With output file
python3 {baseDir}/paddleocr_parse.py -o result.json --async-mode document.pdf

Response Structure

{
  "logId": "unique_request_id",
  "errorCode": 0,
  "errorMsg": "Success",
  "result": {
    "layoutParsingResults": [
      {
        "prunedResult": [...],
        "markdown": {
          "text": "# Document Title\n\nParagraph content...",
          "images": {}
        },
        "outputImages": [...],
        "inputImage": "http://input-image"
      }
    ],
    "dataInfo": {...}
  }
}

Important Fields:

  • prunedResult - Contains detailed layout element information including positions, categories, etc.
  • markdown - Stores the document content converted to Markdown format with preserved structure and formatting.

Mode Selection Guide

Use CaseRecommended Mode
Small images (< 10MB)Sync
Single page PDFsSync
Large PDFs (> 10MB)Async
Multi-page documentsAsync
Batch processingAsync
Quick text extractionSync

Error Handling

The script will exit with code 1 and print error message for:

  • Missing required environment variables
  • File not found
  • API authentication failures
  • Invalid JSON responses
  • API error codes (non-zero)

Quota Information

See official documentation: https://ai.baidu.com/ai-doc/AISTUDIO/Xmjclapam

Top skills in this category