Invoice-Recognition
by @aitanjp
Extract invoice information from images and PDF files using Baidu OCR API, export to Excel. Supports single file, multiple files, or entire directory process...
clawhub install invoice-extractor๐ About This Skill
name: invoice-extractor description: Extract invoice information from images and PDF files using Baidu OCR API, export to Excel. Supports single file, multiple files, or entire directory processing. Use when the user mentions invoices, invoice recognition, extracting invoice data, processing receipts, converting invoices to Excel, or batch processing invoice files.
Invoice Extractor
Extract invoice information from images (PNG, JPG) and PDF files, then export to Excel format.
Capabilities
Prerequisites
1. Baidu Cloud OCR API credentials (free tier: 50,000 requests/day) 2. Python environment with required packages
Quick Start
1. Setup Baidu OCR
Get API credentials from https://cloud.baidu.com/product/ocr: 1. Register/login to Baidu Cloud 2. Create an application 3. Get API Key and Secret Key
2. Configure
Create config.txt in the project root:
BAIDU_API_KEY=your_api_key_here
BAIDU_SECRET_KEY=your_secret_key_here
Or run the setup wizard:
python main_baidu.py --setup
3. Run
Process a single file:
python main_baidu.py -f invoice.pdf
Process multiple files:
python main_baidu.py -f invoice1.pdf -f invoice2.png
Process entire directory:
python main_baidu.py -i ./fp
Mixed mode (directory + extra files):
python main_baidu.py -i ./fp -f extra_invoice.pdf
Output will be saved to output/ directory as Excel file.
Workflow
Task Progress:
[ ] Check prerequisites (Baidu API credentials)
[ ] Choose input method (single file / multiple files / directory)
[ ] Scan and collect invoice files
[ ] Preview files (optional with --list)
[ ] Process each file with Baidu OCR
[ ] Parse invoice fields
[ ] Export to Excel
[ ] Verify output
Input Methods
Single File
Process one specific invoice file:python main_baidu.py -f invoice.pdf
python main_baidu.py -f "path/to/invoice.png"
Multiple Files
Process several specific files:python main_baidu.py -f file1.pdf -f file2.png -f file3.jpg
Entire Directory
Process all invoice files in a directory (recursive):python main_baidu.py -i ./my_invoices
python main_baidu.py -i "/path/to/invoice/folder"
Mixed Mode
Combine directory and individual files:python main_baidu.py -i ./fp -f ./extra/invoice.pdf
Preview Mode
List files without processing:python main_baidu.py -i ./fp --list
Extracted Fields
Basic Information
Buyer Information
Seller Information
Amounts
Items
Command Line Options
python main_baidu.py [options]Input Options:
-f FILE, --file FILE Specify invoice file (can be used multiple times)
-i DIR, --input DIR Input directory (default: fp)
Output Options:
-o DIR, --output DIR Output directory (default: output)
-n NAME, --name NAME Output filename prefix (default: ๅ็ฅจไฟกๆฏ)
Authentication Options:
--api-key KEY Baidu API Key
--secret-key KEY Baidu Secret Key
Other Options:
--setup Run configuration wizard
--list List files to be processed without processing
-h, --help Show help
Usage Examples
Example 1: Single File
python main_baidu.py -f "invoice.pdf"
Example 2: Multiple Files
python main_baidu.py -f "1.pdf" -f "2.png" -f "3.jpg"
Example 3: Entire Directory
python main_baidu.py -i "./2024_invoices"
Example 4: Preview Before Processing
python main_baidu.py -i ./fp --list
Then process:
python main_baidu.py -i ./fp
Example 5: Mixed Input
python main_baidu.py -i ./fp -f ./urgent/invoice.pdf -o ./output -n "March_2024"
Example 6: Custom Output
python main_baidu.py -i ./fp -o ./reports -n "Q1_Invoice_Summary"
Project Structure
.
โโโ fp/ # Place invoice files here
โโโ output/ # Excel output directory
โโโ src/
โ โโโ main_baidu.py # Main entry point
โ โโโ baidu_ocr_extractor.py # Baidu OCR wrapper
โ โโโ invoice_model.py # Data models
โ โโโ excel_exporter.py # Excel export
โ โโโ config.py # Configuration
โโโ scripts/ # Utility scripts
โ โโโ batch_process.py # Batch processing helper
โ โโโ verify_export.py # Verify Excel export
โโโ config.txt # API credentials
โโโ requirements.txt # Dependencies
โโโ SKILL.md # This file
โโโ setup.md # Detailed setup guide
โโโ examples.md # Usage examples
Utility Scripts
Batch Processing Helper
python scripts/batch_process.py /path/to/invoices
Verify Export
python scripts/verify_export.py output/invoice_info.xlsx
Error Handling
Common issues and solutions:
"Baidu OCR authentication failed"
"No invoice files found"
--list to see what files are detected"Image format error"
"File not found"
"path/to/file name.pdf"Advanced Usage
Environment Variables
Set credentials via environment:export BAIDU_API_KEY="your_key"
export BAIDU_SECRET_KEY="your_secret"
Batch Processing Script
Create a script for monthly processing:#!/bin/bash
MONTH=$(date +%Y%m)
python main_baidu.py \
-i "/invoices/$MONTH" \
-o "/reports/$MONTH" \
-n "Invoice_Report_$MONTH"
Additional Resources
๐ก Examples
1. Setup Baidu OCR
Get API credentials from https://cloud.baidu.com/product/ocr: 1. Register/login to Baidu Cloud 2. Create an application 3. Get API Key and Secret Key
2. Configure
Create config.txt in the project root:
BAIDU_API_KEY=your_api_key_here
BAIDU_SECRET_KEY=your_secret_key_here
Or run the setup wizard:
python main_baidu.py --setup
3. Run
Process a single file:
python main_baidu.py -f invoice.pdf
Process multiple files:
python main_baidu.py -f invoice1.pdf -f invoice2.png
Process entire directory:
python main_baidu.py -i ./fp
Mixed mode (directory + extra files):
python main_baidu.py -i ./fp -f extra_invoice.pdf
Output will be saved to output/ directory as Excel file.
โ๏ธ Configuration
1. Baidu Cloud OCR API credentials (free tier: 50,000 requests/day) 2. Python environment with required packages