Files
PDF-WEB/README_INSTALL.md
SimolZimol 97fd0762d7 new file: QUICKSTART.md
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
2025-10-12 22:13:29 +02:00

243 lines
6.8 KiB
Markdown

# 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 <repository-url>
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**