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
- macOS:
- 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
- macOS:
- Java: Required by
tabula-py- All OS: Download and install from Java Downloads
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5c938add3686d434235fd798ded48c6a1c9e6c0fd37495baeb86100472c60bc
|
|
| MD5 |
4f900bcad3db37e87d1f363dfded13e8
|
|
| BLAKE2b-256 |
f774079d01142b4a35f26ec18bb37760c3765ca4662d6d7f7e9d16ae92bd8d69
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
488e8f78df5eee696a75eaeba3e3c9e7742556d32a92f694ce455e7c9571ad8d
|
|
| MD5 |
904a72257921f1b6af57c82c27916a38
|
|
| BLAKE2b-256 |
2a65463d4c651ed960c22d44f7fdba050b1ea02c334c74624cdf52bef8325012
|