webscan mit Playwright statt CutyCapt

- libs/webscan.py: Screenshots von Webseiten (Kundennummer;URL) mit
  Playwright/Chromium, parallel, Größe aus [webscan] der Konfiguration;
  der Zuschnitt mit convert entfällt
- bin/webscan.sh ruft webscan.py auf (Python aus .venv, falls vorhanden)
- bin/webscan und libs/CutyCapt (Qt4-WebKit, 2012) entfernt
- requirements.txt, .gitignore, Abschnitt in doc/README.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Michael Stangl
2026-10-09 09:13:39 +02:00
co-authored by Claude Opus 5.5
parent 31c8d97817
commit 7bd43e9e00
16 changed files with 243 additions and 1338 deletions
+51 -2
View File
@@ -19,16 +19,17 @@ Die Punkte werden über das ganze Wort fortlaufend nummeriert (1–32).
## Voraussetzungen
- Python 3 (keine weiteren Python-Pakete nötig)
- Python 3 (für `piccreate.py` und `svgconvert.py` keine weiteren Pakete nötig)
- ImageMagick (`convert`) für die Umwandlung SVG → JPG/PNG mit `svgconvert.py`
- `bash`, `bc`, `sed`, `grep` für die Font-Werkzeuge in `bin/`
- nur für Webseiten-Vorschauen (`webscan`): Playwright, siehe unten
## Verzeichnisse
| Verzeichnis | Inhalt |
|----------------|-----------------------------------------------------------|
| `bin/` | Shell-Skripte (Aufruf, Umgebung, Font-Extraktion) |
| `libs/` | Python-Programme `piccreate.py`, `svgconvert.py`, Hilfen |
| `libs/` | Python-Programme `piccreate.py`, `svgconvert.py`, `webscan.py` |
| `cfg/` | Auftrags-Konfigurationen (`*.cfg`) |
| `in/` | Eingabedateien (`*.csv`) und Rohglyphen für neue Fonts |
| `out/` | Ausgabe der erzeugten Bilder |
@@ -143,6 +144,54 @@ ImageMagick um. `--format` wählt die Sektion aus der Konfiguration.
| `-p` / `-v` | Fortschrittsbalken / ausführliche Ausgabe |
| `-y` | Probelauf ohne Umwandlung |
## Vorschaubilder von Webseiten (webscan)
`libs/webscan.py` lädt für jede Zeile einer Eingabedatei eine Webseite in
einem Browser ohne Fenster und speichert den sichtbaren Bereich als Bild
`<Kundennummer>.jpg`. Die Größe kommt aus der Sektion `[webscan]` der
Konfiguration (in `cfg/webscan.cfg`: 800×500).
Einmalig einrichten (Python-Umgebung im Projektverzeichnis):
```sh
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/playwright install chromium
```
Statt des Playwright-Chromiums kann auch ein installiertes Chromium benutzt
werden: `-b /usr/bin/chromium` oder `export PICCREATE_BROWSER=/usr/bin/chromium`.
Eingabedatei, z. B. `in/kunden.csv` (Kopfzeile optional, `http://` wird bei
Bedarf ergänzt):
```
Kennummer;URL
1001;www.example.org
1002;https://www.example.com/start
```
Aufruf:
```sh
./webscan.sh -c webscan -i kunden
```
| Option | Bedeutung |
|-----------------|---------------------------------------------------------|
| `-c` | Konfiguration (Standard `webscan`) |
| `-i` | Eingabedatei aus `in/` oder mit Pfad |
| `-o` | Ausgabeverzeichnis (Standard `$PICCREATE_OUT`) |
| `--format` | `jpg` oder `png` (überschreibt die Konfiguration) |
| `-j` | Anzahl gleichzeitig geladener Seiten (Standard 4) |
| `-t` | Wartezeit pro Seite in Sekunden (Standard 20) |
| `-f` | vorhandene Bilder überschreiben |
| `-b` | Pfad zu einem eigenen Chromium |
| `-v` | ausführliche Ausgabe |
Seiten ohne URL oder mit Ladefehler werden übersprungen und am Ende
aufgelistet; der Exit-Code ist dann 1.
## Fonts
Ein Font liegt in `fonts/<name>/` und besteht aus