new file: README_INSTALL.md new file: requirements.txt new file: static/css/style.css new file: static/js/images-to-pdf.js new file: static/js/main.js new file: static/js/pdf-tools.js new file: templates/pdf_tools.html
6.8 KiB
PDF Editor Web App
Eine vollständige PDF-Bearbeitungs-Web-Anwendung, die als lokaler Flask-Server läuft. Bietet Funktionen zum Konvertieren von Bildern zu PDF, Zusammenführen von PDFs, Konvertieren von PDFs zu Bildern und vieles mehr.
✨ Features
🖼️ Bilder zu PDF
- Mehrere Bilder auswählen: Unterstützt JPG, PNG, GIF, BMP, TIFF
- Drag & Drop Interface: Einfaches Hochladen durch Ziehen und Ablegen
- Sortierbare Reihenfolge: Bilder durch Ziehen neu anordnen
- Automatische Größenanpassung: Bilder werden optimal auf PDF-Seiten angepasst
- Progress Tracking: Echtzeit-Upload-Fortschritt
🔧 PDF Tools
- PDFs zusammenführen: Mehrere PDFs zu einer Datei kombinieren
- PDF zu Bildern: Jede PDF-Seite als PNG/JPEG exportieren
- Sortierbare PDF-Liste: Reihenfolge beim Zusammenführen anpassen
- ZIP-Export: Alle extrahierten Bilder in einer ZIP-Datei
🛡️ Sicherheit & Datenschutz
- 100% Lokal: Alle Verarbeitung erfolgt auf Ihrem Computer
- Keine Cloud-Uploads: Dateien verlassen nie Ihr System
- Automatische Bereinigung: Temporäre Dateien werden nach 1 Stunde gelöscht
- Sichere Dateinamen: Automatische Bereinigung und Eindeutigkeit
📱 Benutzerfreundlichkeit
- Responsive Design: Funktioniert auf Desktop, Tablet und Smartphone
- Moderne UI: Bootstrap 5 mit Custom CSS
- Intuitive Bedienung: Selbsterklärende Benutzeroberfläche
- Echtzeit-Feedback: Progress Bars und Notifications
🚀 Installation
Voraussetzungen
- Python 3.8 oder höher
- pip (Python Package Manager)
Schritt-für-Schritt Installation
-
Repository klonen oder herunterladen
# Falls Sie Git verwenden git clone <repository-url> cd pdf-web-app -
Virtuelle Umgebung erstellen (empfohlen)
python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate -
Abhängigkeiten installieren
pip install -r requirements.txt -
Poppler installieren (für pdf2image)
Windows:
- Laden Sie Poppler von hier herunter
- Extrahieren Sie es nach
C:\poppler - Fügen Sie
C:\poppler\Library\binzu Ihren Umgebungsvariablen hinzu
macOS:
brew install popplerUbuntu/Debian:
sudo apt-get update sudo apt-get install poppler-utils -
Anwendung starten
python app.py -
Browser öffnen
- Öffnen Sie Ihren Browser und gehen Sie zu:
http://127.0.0.1:5000
- Öffnen Sie Ihren Browser und gehen Sie zu:
📁 Projektstruktur
pdf-web-app/
├── app.py # Haupt-Flask-Anwendung
├── requirements.txt # Python-Abhängigkeiten
├── README.md # Diese Datei
├── templates/ # HTML-Templates
│ ├── base.html # Basis-Template
│ ├── index.html # Startseite
│ ├── images_to_pdf.html # Bilder zu PDF Seite
│ └── pdf_tools.html # PDF Tools Seite
├── static/ # Statische Dateien
│ ├── css/
│ │ └── style.css # Custom CSS
│ └── js/
│ ├── main.js # Haupt-JavaScript
│ ├── images-to-pdf.js # Bilder zu PDF Funktionalität
│ └── pdf-tools.js # PDF Tools Funktionalität
├── uploads/ # Temporäre Upload-Dateien
└── output/ # Generierte Ausgabedateien
🔧 Konfiguration
Anpassbare Einstellungen in app.py:
# Maximale Dateigröße (Standard: 16MB)
MAX_FILE_SIZE = 16 * 1024 * 1024
# Unterstützte Bildformate
ALLOWED_IMAGE_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif', 'bmp', 'tiff'}
# Server-Konfiguration
app.run(debug=True, host='127.0.0.1', port=5000)
📖 Verwendung
Bilder zu PDF konvertieren
- Gehen Sie zur "Bilder zu PDF" Seite
- Ziehen Sie Bilder in den Upload-Bereich oder klicken Sie zum Auswählen
- Sortieren Sie die Bilder durch Ziehen in die gewünschte Reihenfolge
- Klicken Sie auf "Zu PDF konvertieren"
- Laden Sie die fertige PDF-Datei herunter
PDFs zusammenführen
- Gehen Sie zur "PDF Tools" Seite
- Wählen Sie den "PDFs zusammenführen" Tab
- Laden Sie mindestens 2 PDF-Dateien hoch
- Sortieren Sie die Reihenfolge durch Ziehen
- Klicken Sie auf "PDFs zusammenführen"
- Laden Sie die zusammengeführte PDF herunter
PDF zu Bildern konvertieren
- Gehen Sie zur "PDF Tools" Seite
- Wählen Sie den "PDF zu Bildern" Tab
- Laden Sie eine PDF-Datei hoch
- Wählen Sie die gewünschten Export-Einstellungen
- Klicken Sie auf "Zu Bildern konvertieren"
- Laden Sie die ZIP-Datei mit allen Bildern herunter
🛠️ Entwicklung
Lokale Entwicklung
# Debug-Modus aktivieren
export FLASK_DEBUG=1 # Linux/macOS
set FLASK_DEBUG=1 # Windows
# Anwendung starten
python app.py
Neue Features hinzufügen
- Backend-Logik in
app.pyhinzufügen - API-Endpunkte erstellen
- Frontend-Funktionalität in entsprechende JS-Datei einfügen
- Templates bei Bedarf erweitern
🐛 Fehlerbehebung
Häufige Probleme
Problem: ImportError: No module named 'pdf2image'
Lösung: Stellen Sie sicher, dass Poppler installiert ist (siehe Installation)
Problem: Permission denied beim Dateizugriff
Lösung: Stellen Sie sicher, dass die Upload- und Output-Ordner beschreibbar sind
Problem: Große Dateien werden nicht hochgeladen
Lösung: Erhöhen Sie MAX_CONTENT_LENGTH in der Flask-Konfiguration
Problem: PDF-Konvertierung schlägt fehl Lösung: Überprüfen Sie, ob alle Abhängigkeiten korrekt installiert sind
Debug-Informationen aktivieren
# In app.py
import logging
logging.basicConfig(level=logging.DEBUG)
📝 Lizenz
Dieses Projekt steht unter der MIT-Lizenz. Sie können es frei verwenden, modifizieren und verteilen.
🤝 Beitragen
Beiträge sind willkommen! Bitte:
- Forken Sie das Repository
- Erstellen Sie einen Feature-Branch
- Committen Sie Ihre Änderungen
- Pushen Sie zum Branch
- Erstellen Sie einen Pull Request
📞 Support
Bei Fragen oder Problemen:
- Überprüfen Sie die Fehlerbehebung oben
- Erstellen Sie ein Issue im Repository
- Überprüfen Sie die Console-Logs im Browser (F12)
🔮 Geplante Features
- PDF-Passwort-Schutz
- PDF-Metadaten bearbeiten
- Wasserzeichen hinzufügen
- OCR-Texterkennung
- PDF-Komprimierung
- Batch-Verarbeitung
- Dark Mode
- Mehrsprachige Unterstützung
📊 Technologie-Stack
- Backend: Python Flask
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- UI Framework: Bootstrap 5
- PDF Processing: PyPDF2, reportlab, pdf2image
- Image Processing: Pillow (PIL)
- Icons: Font Awesome
Erstellt mit ❤️ für lokale PDF-Bearbeitung