Releases: gacabartosz/presidio-local-anonymizer
Releases · gacabartosz/presidio-local-anonymizer
Release list
v0.2.1 - Cross-Platform Support
🎉 Cross-Platform Release
Nowe funkcje:
✅ Wsparcie dla macOS i Linux
- Skrypt instalacyjny dla systemów Unix (install.sh)
- Automatyczna instalacja Homebrew na macOS
- Integracja z Finder przez Automator Quick Actions
- Konfiguracja PATH w shell RC files (.zshrc, .bashrc)
✅ Instrukcja dla laika (README_LAIK.md)
- Instalacja jedną komendą dla Windows i macOS
- Proste wyjaśnienia z emoji
- FAQ i troubleshooting
- Trzy metody użycia (GUI, menu kontekstowe, CLI)
Instalacja:
Windows:
iwr https://raw.githubusercontent.com/gacabartosz/presidio-local-anonymizer/main/scripts/install.ps1 | iexmacOS:
curl -fsSL https://raw.githubusercontent.com/gacabartosz/presidio-local-anonymizer/main/scripts/install.sh | bashLinux:
curl -fsSL https://raw.githubusercontent.com/gacabartosz/presidio-local-anonymizer/main/scripts/install.sh | bashPlatforma:
- ✅ Windows 10/11
- ✅ macOS 10.15+ (Catalina lub nowszy)
- ✅ Linux (Ubuntu 20.04+, Debian 10+, Fedora 30+)
Wszystkie funkcje:
- 📄 DOCX, ODT, PDF (text layer)
- 🖼️ OCR dla skanów (PDF, PNG, JPG, TIFF)
- 🎨 GUI (tkinter)
- 🖱️ Menu kontekstowe (prawy przycisk)
- ⌨️ CLI
🤖 Generated with Claude Code
v0.2.0 - PDF + OCR + GUI 🎨📄
Presidio Local Anonymizer v0.2.0
🎉 Major Release - New Features!
📄 PDF Support
- ✅ Text Layer PDFs - extract and anonymize embedded text
- ✅ Scanned PDFs (OCR) - automatic detection and OCR processing
- ✅ Auto-detection - system automatically chooses the right processor
🔍 OCR for Images
- ✅ Tesseract OCR integration for scanned documents
- ✅ Image formats - PNG, JPG, JPEG, TIFF
- ✅ Smart redaction - black boxes over detected PII on images
- ✅ Polish language support - pol.traineddata included
🎨 GUI (Graphical User Interface)
- ✅ Simple tkinter interface - no more command line!
- ✅ Batch processing - select multiple files or entire folders
- ✅ Progress bar - real-time progress tracking
- ✅ Live logs - see what's happening
- ✅ Drag & Drop ready - install tkinterdnd2 for full functionality
📦 Installation
One-liner PowerShell:
powershell -NoProfile -ExecutionPolicy Bypass -Command "& {Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/gacabartosz/presidio-local-anonymizer/main/scripts/install.ps1' -OutFile '$env:TEMP\presidio_install.ps1'; & '$env:TEMP\presidio_install.ps1'; Remove-Item '$env:TEMP\presidio_install.ps1' -Force}"What's installed:
- Python 3.11
- Git
- Tesseract OCR (new! for scans)
- All Python dependencies
- SpaCy Polish model
- Tesseract Polish model (new!)
Installation time: ~10-15 minutes
🚀 Usage
GUI (new!)
anonymize-gui.cmdCommand Line
# DOCX/ODT (as before)
anonymize.cmd document.docx
# PDF (new\!)
anonymize.cmd report.pdf
# Images (new\!)
anonymize.cmd scan.png
# Batch process folder
anonymize.cmd C:\Documents\Context Menu
Right-click on any supported file → Anonimizuj (Presidio)
📊 Supported Formats
| Format | Extension | OCR Required | Status |
|---|---|---|---|
| Word | .docx | No | ✅ |
| OpenDocument | .odt | No | ✅ |
| PDF (text) | No | ✅ NEW | |
| PDF (scan) | Yes | ✅ NEW | |
| PNG | .png | Yes | ✅ NEW |
| JPEG | .jpg, .jpeg | Yes | ✅ NEW |
| TIFF | .tiff, .tif | Yes | ✅ NEW |
🔧 Technical Details
New Dependencies
PyPDF2==3.0.1- PDF text extractionreportlab==4.0.7- PDF generationpytesseract==0.3.10- OCR wrapperpdf2image==1.16.3- PDF to image conversionPillow==10.1.0- Image manipulationimg2pdf==0.5.1- Image to PDF conversiontkinterdnd2==0.3.0- GUI drag & drop
Architecture
PDF file
↓
Check if has text layer
↓
YES → pdf_processor.py (fast)
NO → ocr_processor.py (Tesseract)
↓
Presidio Analyzer → Detect PII
↓
Anonymize:
- Text PDFs: replace text
- Scanned: black boxes on image
⚠️ Known Limitations
PDF Formatting:
- Text PDFs: Complex layouts simplified
- Scanned PDFs: Output is image-based
OCR Accuracy:
- Depends on scan quality
- Works best with 300 DPI or higher
- Polish language model included
GUI:
- Requires tkinter (included with Python)
- Drag & Drop requires tkinterdnd2 (optional)
🐛 Bug Fixes
- Improved error handling for missing libraries
- Better logging for debugging
- Graceful degradation if OCR unavailable
📝 Changelog
Added
- PDF text layer support (
pdf_processor.py) - OCR for scanned PDFs and images (
ocr_processor.py) - Tesseract OCR auto-installation in
install.ps1 - Simple GUI with batch processing (
app/gui.py) - Support for PNG, JPG, TIFF formats
- Auto-detection: text vs scanned PDFs
Changed
- Updated
main.pyto route files to appropriate processors - Extended
requirements.txtwith OCR libraries - Updated README with new features
- Installation time increased to 10-15 min (Tesseract download)
Roadmap Progress
- PDF support
- OCR support
- Image anonymization
- Basic GUI
- DOCX formatting preservation (v0.3.0)
- Parallel processing (v0.3.0)
🙏 Credits
- Microsoft Presidio - PII detection engine
- Tesseract OCR - OCR engine
- SpaCy - NLP for Polish language
- UB-Mannheim - Tesseract Windows builds
📚 Documentation
Full Changelog: v0.1.0...v0.2.0
🤖 Generated with Claude Code
MVP Release v0.1.0
Presidio Local Anonymizer v0.1.0 (MVP)
Główne funkcje
✅ Offline - wszystkie operacje wykonywane lokalnie
✅ Obsługa polskich danych - PESEL, NIP, imiona, nazwiska
✅ Formaty - DOCX i ODT
✅ Integracja z Windows - menu kontekstowe
✅ Przetwarzanie wsadowe - pliki i foldery
✅ Raporty JSON - szczegółowe statystyki
Wykrywane dane osobowe
- PERSON (imiona i nazwiska)
- EMAIL_ADDRESS
- PHONE_NUMBER
- PL_PESEL
- PL_NIP
- LOCATION
- DATE_TIME
- URL
- IP_ADDRESS
Instalacja
One-liner PowerShell:
powershell -NoProfile -ExecutionPolicy Bypass -Command "& {Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/gacabartosz/presidio-local-anonymizer/main/scripts/install.ps1' -OutFile '$env:TEMP\presidio_install.ps1'; & '$env:TEMP\presidio_install.ps1'; Remove-Item '$env:TEMP\presidio_install.ps1' -Force}"Znane ograniczenia MVP
- DOCX: Style inline mogą się uprościć
- ODT: Struktura jest linearyzowana
- Przetwarzanie sekwencyjne (nie równoległe)
- Możliwe false positives/negatives
Co dalej?
Zobacz roadmap w README.md