Skip to main content

OCR library with advanced PDF to text, layout visualization, audio generation, table extraction, summarization, and translation

Project description

ocr_pdf2txt

A comprehensive Python library for extracting text from PDF files using OCR with advanced features such as layout visualization, audio generation, table extraction, summarization, and translation.

Features

  • Text Extraction: Extracts text from PDF files using Tesseract OCR.
  • Layout Visualization: Generates HTML files with OCR overlays to visualize recognized text regions.
  • Audio Output: Converts extracted text into audio files using gTTS.
  • Semantic Topic Detection: Identifies high-level semantic topics from the extracted text using spaCy.
  • Advanced Summarization: Summarizes the extracted text using Hugging Face transformers.
  • Translation: Translates extracted text into specified languages using googletrans.
  • Table Extraction: Extracts tables from PDFs into CSV files using tabula-py.
  • Batch Processing: Processes multiple PDFs concurrently for efficient workflows.

Installation

Prerequisites

  • Python 3.7+
  • Tesseract OCR:
    • macOS: brew install tesseract
    • Windows: Download from Tesseract at UB Mannheim
    • Linux: Install via package manager, e.g., sudo apt-get install tesseract-ocr
  • Poppler: Required by pdf2image
    • macOS: brew install poppler
    • Windows: Download from Poppler for Windows
    • Linux: Install via package manager, e.g., sudo apt-get install poppler-utils
  • Java: Required by tabula-py

Install the Library

pip install ocr_pdf2txt

Usage

Single PDF Processing

from ocr_pdf2txt import ocr_pdf_to_text

pdf_path = "path/to/your/input.pdf"
output_folder = "path/to/output_folder"

ocr_pdf_to_text(
    pdf_path=pdf_path,
    output_folder=output_folder
)

Batch PDF Processing

from ocr_pdf2txt import ocr_batch_pdfs_to_text

pdf_list = [
    "path/to/your/first.pdf",
    "path/to/your/second.pdf",
    # Add more PDF paths
]
output_folder = "path/to/output_directory"

ocr_batch_pdfs_to_text(
    pdf_paths=pdf_list,
    output_folder=output_folder,
    max_workers=4
)

Extract Text Only

from ocr_pdf2txt import pdf_to_text_only

pdf_path = "path/to/your/input.pdf"
text = pdf_to_text_only(pdf_path)
print(text)

Extract Tables

from ocr_pdf2txt import extract_tables_from_pdf

pdf_path = "path/to/your/input.pdf"
output_csv = "path/to/output.csv"

extract_tables_from_pdf(pdf_path, output_csv, pages="all")

API

ocr_pdf_to_text

Extracts text from a PDF file using OCR and saves the output to a text file.

def ocr_pdf_to_text(
    pdf_path: str,
    output_folder: str
):

Extracts text from a single PDF file and performs the following:

  • Layout Visualization: Creates HTML overlays of OCR results
  • Audio Output: Generates an MP3 file of the extracted text
  • Semantic Topic Detection: Prints detected named entity labels
  • Advanced Summarization: Summarizes the extracted text
  • Translation: Translates the extracted text into Spanish

pdf_to_text_only

def pdf_to_text_only(pdf_path: str) -> str:

Extracts text from a single PDF and returns it as a string.

extract_tables_from_pdf

def extract_tables_from_pdf(pdf_path: str, output_csv_path: str, pages: str = "all"):

Extracts tables from a PDF and saves them as a CSV file.

ocr_batch_pdfs_to_text

def ocr_batch_pdfs_to_text(
    pdf_paths: List[str],
    output_folder: str,
    max_workers: int = 4
):

Processes multiple PDFs concurrently, performing all OCR operations on each.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ocr_pdf2txt-0.1.2.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ocr_pdf2txt-0.1.2-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file ocr_pdf2txt-0.1.2.tar.gz.

File metadata

  • Download URL: ocr_pdf2txt-0.1.2.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for ocr_pdf2txt-0.1.2.tar.gz
Algorithm Hash digest
SHA256 a5c938add3686d434235fd798ded48c6a1c9e6c0fd37495baeb86100472c60bc
MD5 4f900bcad3db37e87d1f363dfded13e8
BLAKE2b-256 f774079d01142b4a35f26ec18bb37760c3765ca4662d6d7f7e9d16ae92bd8d69

See more details on using hashes here.

File details

Details for the file ocr_pdf2txt-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: ocr_pdf2txt-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for ocr_pdf2txt-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 488e8f78df5eee696a75eaeba3e3c9e7742556d32a92f694ce455e7c9571ad8d
MD5 904a72257921f1b6af57c82c27916a38
BLAKE2b-256 2a65463d4c651ed960c22d44f7fdba050b1ea02c334c74624cdf52bef8325012

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page