-> with a nice old style GUI -> have FUN !!!
-> update: 08/26 PDF_Parser-by-Kalle07-v8a
-> on right side releases: windows exe available !
or: https://github.com/kalle07/pdf2txt-parser/releases/download/V8a/PDFParser-by-kalle07.exe
The PDF Parser is a high-performance desktop application for extracting text, images, drawings, and metadata from PDF documents. Built for speed with multi-core processing and batch conversion, it helps researchers, engineers, businesses, and developers convert large PDF collections into clean, searchable text while preserving valuable document information.
The parser can also save extracted images and vector drawings as separate files. Using an external application (eg: small VL model like LFM25), these images and drawings can be automatically described, and the generated descriptions can then be injected back into the main extracted text file. This creates enriched, AI-ready documents that combine the original PDF text with meaningful descriptions of visual content, making them ideal for search, indexing, accessibility, and retrieval-augmented generation (RAG) workflows.
Check the PDF before converting it to text: go to any page, ideally one at the beginning and one at the end, select the text with the mouse and copy it into an editor (can you see what you copied?)... if that doesn't work, this parser won't work and neither will any other simple program! To do this, you must remove the copy protection, or the page is just an image and you must use OCR first.
• The generated TXT file has the same name as the PDF file.
• The TXT file and a (optional) media folder with images/drawings are created in the source directory.
• Two common types of tables are converted to JSON format (embedder readable)
• Older TXT and images files will be overwritten without prompting.
• When selecting a folder, all .pdf files inside it (non-hidden) are processed.
• Instant text preview
• Progress bar
EXE - ONLY WINDOWS
python install available, should be run everywhere
⇨ give me a ❤️ or ⭐, if you like ;)
newest: PDF Parser by Kall07
Most LLM applications only convert your PDF simple to txt, nothing more, its like you save your PDF as txt file. Often textblocks are mixed and tables not readable.
Therefore its better to convert it with some help of a parser.
Right-click options:
• You can remove or open the source/converted PDF by right-clicking on it.
Status indicators after processing:
If:
[INFO] File completed: TEST.pdf (X pages)!
[INFO] Processing completed
-> This only means all pages were processed; image/drawing/table quality is not guaranteed.
-> If you cannot select and copy the text from the PDF, this program will produce poor results.
-> No OCR or AI-based recognition — pure pymupdf extraction only.
-> No formulas
Layout & Content Rules:
• An attempt is made to reproduce page layout in columns (left → right) and blocks (top → bottom).
• Two common types of tables with detectable structure are extracted; headers are assigned and stored as JSON inside the TXT file.
• Adds "Page X of Y" label at the beginning of every processed page.
Image/Drawings Extraction:
• Images below 100 px on any side are skipped by default (adjustable via config).
• Full-page images (≥80% of page size) are excluded — likely background/scan artifacts.
• Images overlapping >90% with a similarly-sized text block or table are skipped.
• Max 10 media items per page to prevent cluttered output.
Drawing Extraction:
• A "drawing" requires at least 10 drawing rectangles clustered together (configurable via min_items_per_cluster).
• Small text blocks near drawings may be merged into the cluster for context but do NOT count toward the minimum.
• Drawings are saved with padding around their bounding box for visual clarity.
Margin & Overlap Protection:
• Content whose center falls within outer margins is skipped (configurable thresholds per side).
• Tables take precedence — text blocks and drawings overlapping a table area by >90% are discarded.
• Images vs Drawings conflict resolution keeps the larger item; smaller one is logged as skipped.
Post-Processing Mode:
• First: describe all images and drawings oc with help of Ai (Suggestion: LFM2.5-VL-1.6B)
-> example approach: lfm25_image_describe.py
• This second pass reads existing text files with-in pdf media-folder same name as the PDF and injects a description field alongside each image/drawing JSON block.
example: testfile_page_0003_img_02.png -> testfile_page_0003_img_02.txt
Stop function becomes effective only after the currently processed file finishes its page chunk.
When processing large amounts of data, the following should be noted:
- All PDFs are opened once by PDFValidator to determine validity, protection status, and page count.
- Files with fewer than 32 pages run in parallel — one core per file (up to available cores).
- Large files (≥32 pages) are split into chunks of ~8 pages per core.
- Each page runs inside a separate ProcessPoolExecutor worker, fully isolated with its own ConversionConfig copy.
- Results from all workers are collected and assembled in original page order before writing the final TXT file.
- Speed: 8 cores ~50 pages / sec
...
📥 Downloads: 016
This I have created with my brain and the help of Ai, Iam not a coder... sorry so I will not fulfill any wishes unless there are real errors.
It is really hard for me with GUI and the Function and in addition to compile it.
For the python-file oc you need to import missing libraries.
download exe no install, direct working App
python -m venv venv
venv\Scripts\activate # On Windows
pip install -r requirements.txt
python main.py
now have fun and leave a comment if you like ;)
on discord "sevenof9"
my raw-txt-snippet extractor
https://github.com/kalle07/raw-txt-snippet-creator
my embedder collection:
https://huggingface.co/kalle07/embedder_collection
I am not responsible for any errors or crashes on your system. If you use it, you take full responsibility!