ENGLISH / DEUTSCH
Ein flexibles Python-Tool zum Finden und Verschieben von doppelten PDF-Dateien – wahlweise durch Textextraktion (mit OCR-Fallback) oder Bildvergleich per Hash.
A flexible Python tool to detect and move duplicate PDF files – either via text content (with OCR fallback) or image-based perceptual hashing.
- Textvergleich mit OCR (Tesseract), falls kein extrahierbarer Text vorhanden
- Bildvergleich mit
pdftoppm
+ perceptual hash (ImageHash) - Automatisches Verschieben von Duplikaten in einen Unterordner
duplikate
- Optional: parallele Verarbeitung mit mehreren Threads
- Export als CSV und Markdown
- Docker-Support für plattformunabhängigen Einsatz
sudo apt install poppler-utils tesseract-ocr python3-venv
pip install -r requirements.txt
Python-Pakete (requirements.txt
):
pymupdf
pillow
imagehash
pytesseract
pdf-text-duplicate-checker/
├── src/
│ ├── pdf_dupe_advanced.py # Hauptskript mit allem (Text + optional OCR)
│ ├── pdf_text_duplicate_checker.py # Textbasierter Scanner mit CSV-/Markdown-Export
│ ├── pdf_text_dupe_move.py # Textvergleich mit automatischem Verschieben
│ ├── pdf_dupe_imghash.py # Bildbasierter Vergleich (Verschieben)
├── requirements.txt
├── README.md
Scannt alle PDFs rekursiv und exportiert Ergebnisse in duplicates.csv
+ duplicates.md
.
PDF_DIR=/pfad/zur/pdf-sammlung THREADS=8 python src/pdf_text_duplicate_checker.py
Alle erkannten Duplikate werden direkt in duplikate/
verschoben.
python src/pdf_text_dupe_move.py
Render-basierter Abgleich auf Basis der visuellen Ähnlichkeit von PDF-Seiten.
python src/pdf_dupe_imghash.py
OCR bei Bedarf, paralleles Scanning, automatisches Erkennen, Export in CSV/MD.
PDF_DIR=/pfad/zur/pdf-sammlung THREADS=4 python src/pdf_dupe_advanced.py
Image bauen:
docker build -t pdf-dupe-checker .
Container ausführen:
docker run -v /deine/pdfs:/app/pdfs pdf-dupe-checker
Ergebnisse liegen dann in /app/duplicates.csv
und .md
.
Original,Duplicate
file1.pdf,file1_copy.pdf
# PDF Duplicates
- **Original:** `file1.pdf`
- **Duplicate:** `file1_copy.pdf`
- ❌ Keine Datei wird gelöscht
- ✅ Duplikate werden nur verschoben (nicht überschrieben)
- 🔄 Wiederholbares Scannen möglich
- OCR kann bei schlechter Scanqualität unzuverlässig sein
- Visuelle Duplikaterkennung ist rechenintensiver (langsamer)
- Sehr große Ordner benötigen mehr RAM
TimInTech
→ GitHub: @TimInTech
Pull Requests, Bug Reports und Verbesserungsvorschläge sind jederzeit willkommen.