# 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 1. **Repository klonen oder herunterladen** ```bash # Falls Sie Git verwenden git clone cd pdf-web-app ``` 2. **Virtuelle Umgebung erstellen (empfohlen)** ```bash python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate ``` 3. **Abhängigkeiten installieren** ```bash pip install -r requirements.txt ``` 4. **Poppler installieren (für pdf2image)** **Windows:** - Laden Sie Poppler von [hier](https://github.com/oschwartz10612/poppler-windows/releases) herunter - Extrahieren Sie es nach `C:\poppler` - Fügen Sie `C:\poppler\Library\bin` zu Ihren Umgebungsvariablen hinzu **macOS:** ```bash brew install poppler ``` **Ubuntu/Debian:** ```bash sudo apt-get update sudo apt-get install poppler-utils ``` 5. **Anwendung starten** ```bash python app.py ``` 6. **Browser öffnen** - Öffnen Sie Ihren Browser und gehen Sie zu: `http://127.0.0.1:5000` ## 📁 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`: ```python # 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 1. Gehen Sie zur "Bilder zu PDF" Seite 2. Ziehen Sie Bilder in den Upload-Bereich oder klicken Sie zum Auswählen 3. Sortieren Sie die Bilder durch Ziehen in die gewünschte Reihenfolge 4. Klicken Sie auf "Zu PDF konvertieren" 5. Laden Sie die fertige PDF-Datei herunter ### PDFs zusammenführen 1. Gehen Sie zur "PDF Tools" Seite 2. Wählen Sie den "PDFs zusammenführen" Tab 3. Laden Sie mindestens 2 PDF-Dateien hoch 4. Sortieren Sie die Reihenfolge durch Ziehen 5. Klicken Sie auf "PDFs zusammenführen" 6. Laden Sie die zusammengeführte PDF herunter ### PDF zu Bildern konvertieren 1. Gehen Sie zur "PDF Tools" Seite 2. Wählen Sie den "PDF zu Bildern" Tab 3. Laden Sie eine PDF-Datei hoch 4. Wählen Sie die gewünschten Export-Einstellungen 5. Klicken Sie auf "Zu Bildern konvertieren" 6. Laden Sie die ZIP-Datei mit allen Bildern herunter ## 🛠️ Entwicklung ### Lokale Entwicklung ```bash # Debug-Modus aktivieren export FLASK_DEBUG=1 # Linux/macOS set FLASK_DEBUG=1 # Windows # Anwendung starten python app.py ``` ### Neue Features hinzufügen 1. Backend-Logik in `app.py` hinzufügen 2. API-Endpunkte erstellen 3. Frontend-Funktionalität in entsprechende JS-Datei einfügen 4. 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 ```python # 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: 1. Forken Sie das Repository 2. Erstellen Sie einen Feature-Branch 3. Committen Sie Ihre Änderungen 4. Pushen Sie zum Branch 5. Erstellen Sie einen Pull Request ## 📞 Support Bei Fragen oder Problemen: 1. Überprüfen Sie die Fehlerbehebung oben 2. Erstellen Sie ein Issue im Repository 3. Ü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**