Compare commits

..

12 commits
v0.1.2 ... main

Author SHA1 Message Date
MrLetsPlay4Fun
d07abc8cab Change readme picture 2026-02-08 10:20:34 +01:00
MrLetsPlay4Fun
d2f1f3c6b0 bump 0.1.6: layouts, profiles, cli, profile export 2026-02-08 09:38:05 +01:00
MrLetsPlay4Fun
4c669debb5 add start-position printing, post-open options, subprocess opener, exact A4 sheet mode (v0.1.5) 2026-02-08 09:12:05 +01:00
MrLetsPlay4Fun
ae067c5d92 Merge branch 'main' of https://github.com/MrLetsPlay4Fun/paperless-asn-label-generator 2026-02-08 08:57:15 +01:00
MrLetsPlay4Fun
3728f0df51 Edit picrure 2026-02-08 08:57:09 +01:00
MrLetsPlay4Fun
07124f52e7
Add files via upload 2026-02-08 08:54:36 +01:00
MrLetsPlay4Fun
739813b990 fix(ui): widen window and preview layout 2026-02-08 08:50:07 +01:00
MrLetsPlay4Fun
71ed2e5c3e Fix-Header 2026-02-08 08:31:23 +01:00
MrLetsPlay4Fun
6f7476f137 fix(ui): dedupe init, bump 0.1.3 2026-02-08 08:29:23 +01:00
MrLetsPlay4Fun
c448e8bb75 Update README 2026-02-03 18:04:09 +01:00
MrLetsPlay4Fun
904384227b Add screenshot to README 2026-02-03 17:59:31 +01:00
MrLetsPlay4Fun
a636675bbe Update README: installation + update instructions for all OS 2026-02-03 17:55:04 +01:00
7 changed files with 796 additions and 161 deletions

View file

@ -1,5 +1,38 @@
# Changelog
## 0.1.6 - 2026-02-08
### Changed
- Mehrere Layout-Profile auswählbar (`L4731`, `L7160`) in GUI und CLI.
- Profilverwaltung in der GUI hinzugefügt (Profil speichern/laden/löschen) ohne manuelles JSON-Editieren.
- Standard-Profilname ist jetzt `Brother MFC-L2710DW` (alte `default`-Einträge werden automatisch migriert).
- Profile können jetzt per Button als JSON exportiert werden.
- Optionaler CLI-Modus für PDF-Erzeugung ohne GUI (`--cli ...`) inkl. Layoutwahl und Seiten-/Labelmodus.
## 0.1.5 - 2026-02-08
### Changed
- Startposition auf angebrochenem Bogen ist jetzt einstellbar (`1..189`), inklusive korrekter Seitenberechnung und Druckplatzierung.
- Option nach PDF-Erzeugung eingeführt: `none`, `file` oder `folder` direkt öffnen.
- Ordner/Datei-Öffnen ist plattformstabil über `subprocess` umgesetzt (ohne `os.system`), auch bei Sonderzeichen im Pfad.
- Im Modus `A4 Blätter` wird jetzt exakt die gewählte Blattanzahl erzeugt (erstes Blatt ab Startposition auffüllen, kein zusätzlich angebrochenes Folgeblatt).
## 0.1.4 - 2026-02-08
### Changed
- Vorschau für `CODE128` rendert jetzt als echter Barcode statt Platzhalter.
- Vorschau-Layout wurde neu ausbalanciert: QR kleiner, Text deutlich größer/lesbarer, kein Überlappen von CODE128 und Text.
- Fensterbreite und Vorschaufläche wurden vergrößert, damit alle UI-Elemente und der Vorschau-Text vollständig sichtbar bleiben.
- Statusmeldungen in der UI sind vereinheitlicht (`[INFO]`, `[OK]`, `[WARN]`, `[ERROR]`) und farblich klar getrennt.
- Layout verhält sich auf kleineren Displays robuster (reduzierte `minsize`, bessere Spalten-Gewichtung, umbrochene Hilfstexte/Statuszeilen).
## 0.1.3 - 2026-02-08
### Changed
- Kalibrierungs-Eingaben sind jetzt als sichtbare Delta-Werte ausgelegt (Default `0.0` in der UI), während intern weiterhin die Basiswerte genutzt werden.
- Persistierte Kalibrierung speichert den Modus explizit als `calibration_mode = "delta"`; bestehende Legacy-Configs ohne Marker werden kompatibel übernommen.
- GUI-Titel zeigt jetzt die aktuelle App-Version an.
### Fixed
- Doppelten `_build_ui()`-Aufruf entfernt, damit beim Start keine doppelten Widgets oder Event-Bindings entstehen.
- Fehler beim Laden/Speichern der `config.json` werden in der Oberfläche sichtbar angezeigt statt still ignoriert.
## 0.1.2 - 2026-02-03
### Added
- Persistente Einstellungen (config.json) im User-Config-Verzeichnis (XDG_CONFIG_HOME / ~/.config, macOS Application Support, Windows APPDATA).

201
README.md
View file

@ -1,120 +1,205 @@
# paperless-ngx ASN Label Generator (GUI) Avery L4731 / L4731REV
# paperless-ngx ASN Label Generator (GUI + CLI)
GUI-Tool (Tkinter), das ASN-Labels als PDF erzeugt QR oder Code128 inkl. Kalibrierung (Offset & Pitch-Drift) für saubere Ausdrucke auf echten Etikettenbögen.
Kleines Tool (Tkinter + CLI), das **ASN-Labels als PDF** erzeugt wahlweise **QR** oder **Code128** für mehrere **A4-Etikettenlayouts**.
✅ Ideal, um in paperless-ngx sauber mit ASN-Barcodes zu arbeiten
✅ Mit **Kalibrierung** (Offset X/Y + Pitch-Drift) für exakte Druckausrichtung
**Persistente Einstellungen**: Drucker-Kalibrierwerte werden automatisch gespeichert
**Mehrere Layouts** (z. B. `L4731`, `L7160`)
**Drucker-Profile** speichern/laden (ohne JSON-Edit)
**CLI-Modus** für Automatisierung
**Reset-Button**: “Config löschen” setzt alles auf Standardwerte zurück
> Hinweis: Inoffizielles Tool, nicht affiliated mit paperless-ngx.
<p align="center">
<img src="assets/screenshot.png" alt="Screenshot der Anwendung" width="900">
</p>
---
## Voraussetzungen
- **Python 3.10+**
- **Git** (nur nötig, wenn du direkt von GitHub installieren willst)
- Auf **Linux** ggf. zusätzlich: **Tkinter** (siehe unten)
- Optional: **Git** (nur wenn Installation direkt von GitHub erfolgt)
- **Linux**: `python3-tk` (Tkinter GUI Paket)
---
## Installation & Start
### Windows (empfohlen)
> **Wichtig (Linux):** Viele Distributionen blockieren systemweite `pip3 install ...` Installationen (PEP 668).
> Nutze dort am besten **pipx** oder eine **virtuelle Umgebung**.
#### 1) Python installieren
- Lade Python von der offiziellen Seite.
- **Wichtig:** Beim Installer unbedingt **„Add Python to PATH“** aktivieren.
### Windows
Prüfen:
#### Empfohlen: pipx (sauber, isoliert)
1) Python installieren (bei python.org) und **„Add Python to PATH“** aktivieren.
2) pipx installieren:
```bash
python --version
pip --version
python -m pip install --upgrade pip
python -m pip install pipx
python -m pipx ensurepath
```
Terminal neu öffnen.
#### 2) Installation direkt von GitHub
3) Installieren & starten:
```bash
pip install git+https://github.com/DEINNAME/paperless-asn-label-generator
pipx install git+https://github.com/MrLetsPlay4Fun/paperless-asn-label-generator.git
paperless-asn-labels
```
> Wenn `pip` meldet, dass `git` fehlt: Git für Windows installieren, dann nochmal versuchen.
#### Alternative: Virtualenv
```bash
python -m venv .venv
.venv\Scripts\activate
pip install git+https://github.com/MrLetsPlay4Fun/paperless-asn-label-generator.git
paperless-asn-labels
```
---
### macOS
#### 1) Python prüfen/ installieren
Prüfen:
```bash
python3 --version
pip3 --version
```
Falls Python fehlt oder zu alt ist, am einfachsten über Homebrew:
#### Empfohlen: pipx
1) (Optional) Python via Homebrew:
```bash
brew install python
```
#### 2) Installation direkt von GitHub
2) pipx installieren:
```bash
pip3 install git+https://github.com/DEINNAME/paperless-asn-label-generator
paperless-asn-labels
python3 -m pip install --upgrade pip
python3 -m pip install pipx
python3 -m pipx ensurepath
```
Terminal neu öffnen.
> Falls `paperless-asn-labels` nicht gefunden wird, starte einmal neu das Terminal oder nutze:
3) Installieren & starten:
```bash
python3 -m paperless_asn_label_generator
pipx install git+https://github.com/MrLetsPlay4Fun/paperless-asn-label-generator.git
paperless-asn-labels
```
---
### Linux
### Linux (Debian/Ubuntu/Pop!_OS)
#### 1) Python + pip prüfen
#### 1) Tkinter installieren (GUI)
```bash
python3 --version
pip3 --version
sudo apt update
sudo apt install -y python3-tk
```
Falls nötig (Debian/Ubuntu):
#### 2) Empfohlen: pipx installieren
```bash
sudo apt-get update
sudo apt-get install -y python3 python3-pip
sudo apt install -y pipx
pipx ensurepath
```
Terminal neu öffnen.
#### 2) Tkinter installieren (wichtig für GUI)
Debian/Ubuntu:
#### 3) Installieren & starten (GitHub)
```bash
sudo apt-get install -y python3-tk
```
Fedora:
```bash
sudo dnf install -y python3-tkinter
```
Arch:
```bash
sudo pacman -S tk
```
#### 3) Installation direkt von GitHub
```bash
pip3 install git+https://github.com/DEINNAME/paperless-asn-label-generator
pipx install git+https://github.com/MrLetsPlay4Fun/paperless-asn-label-generator.git
paperless-asn-labels
```
#### Alternative: Virtuelle Umgebung (wenn du pipx nicht willst)
```bash
python3 -m venv ~/.venvs/paperless-asn
source ~/.venvs/paperless-asn/bin/activate
pip install --upgrade pip
pip install git+https://github.com/MrLetsPlay4Fun/paperless-asn-label-generator.git
paperless-asn-labels
```
---
## Update
### Wenn mit pipx installiert
```bash
pipx upgrade paperless-asn-labels
```
Falls das Paket unter pipx anders heißt:
```bash
pipx upgrade-all
```
### Wenn in einer venv installiert
```bash
pip install -U --force-reinstall git+https://github.com/MrLetsPlay4Fun/paperless-asn-label-generator.git
```
---
## Nutzung
- Start-Nummer wählen (z.B. 1 oder 190)
- Layout wählen (z. B. `L4731` oder `L7160`)
- Prefix setzen (muss zu paperless-ngx passen)
- Führende Nullen einstellen (z.B. 7 → `ASN0000001`)
- Menge als **Labels** oder **A4-Blätter**
- Optional: **Startposition auf Bogen** setzen (bei angebrochenem Blatt)
- Code-Typ: **QR** oder **CODE128**
- Optional: Rahmen aktivieren (hilft beim Kalibrieren)
- Optional: **Nach PDF öffnen** (`none`, `file`, `folder`)
- Optional: **Rahmen aktivieren** (hilft beim Kalibrieren)
- Optional: Profil speichern/laden/löschen (z. B. je Drucker)
- „PDF erzeugen…“ → Datei speichern
---
## Profile (Drucker-Profile)
Profile speichern deine aktuellen Einstellungen als Set (Layout, Kalibrierung, Startposition, Code-Typ usw.).
- Standardprofil: **`Brother MFC-L2710DW`**
- Buttons in der GUI:
- **Profil speichern**: aktuelle Einstellungen unter neuem Namen speichern
- **Profil laden**: gewähltes Profil aktivieren
- **Profil löschen**: Profil entfernen (Standardprofil ist geschützt)
- **Profile exportieren**: alle gespeicherten Profile als JSON-Datei exportieren
---
## CLI-Modus (Automatisierung)
Du kannst PDFs ohne GUI erzeugen:
```bash
paperless-asn-labels --cli --output /tmp/asn.pdf --layout L4731 --count 30 --prefix ASN --zeros 7 --kind QR
```
Seitenmodus (exakte Blattanzahl):
```bash
paperless-asn-labels --cli --output /tmp/asn_pages.pdf --layout L7160 --pages 2 --start-position 5 --kind CODE128
```
Alle Optionen:
```bash
paperless-asn-labels --help
```
Hinweis: Wenn CLI-Optionen gesetzt sind (z. B. `--output`, `--count`, `--pages`), läuft das Tool automatisch im CLI-Modus.
---
## Gespeicherte Einstellungen (Config)
Deine Kalibrierwerte & UI-Einstellungen werden automatisch gespeichert (persistente Config).
Der Speicherort ist:
- **Linux:** `~/.config/paperless-ngx-asn-labels/config.json` (oder `$XDG_CONFIG_HOME/...`)
- **macOS:** `~/Library/Application Support/paperless-ngx-asn-labels/config.json`
- **Windows:** `%APPDATA%\paperless-ngx-asn-labels\config.json`
Im Programm gibt es außerdem den Button **„Config löschen“**, der die Datei entfernt und auf Standardwerte zurücksetzt.
---
## Prefix in paperless-ngx
Der Prefix muss zu deiner paperless-ngx Einstellung passen:
@ -141,15 +226,11 @@ Wenn die Position nicht exakt passt:
## Entwicklung (Repo klonen & lokal starten)
```bash
git clone https://github.com/DEINNAME/paperless-asn-label-generator
git clone https://github.com/MrLetsPlay4Fun/paperless-asn-label-generator.git
cd paperless-asn-label-generator
# Virtuelle Umgebung
python -m venv .venv
# Windows:
# .venv\Scripts\activate
# macOS/Linux:
# source .venv/bin/activate
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
paperless-asn-labels

BIN
assets/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View file

@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "paperless-asn-label-generator"
version = "0.1.2"
version = "0.1.6"
description = "GUI tool to generate ASN barcode/QR labels for paperless-ngx (A4/Avery L4731) with calibration."
readme = "README.md"
requires-python = ">=3.10"
@ -31,4 +31,3 @@ package-dir = {"" = "src"}
[tool.setuptools.packages.find]
where = ["src"]

View file

@ -1,2 +1,2 @@
__all__ = ["__version__"]
__version__ = "0.1.2"
__version__ = "0.1.6"

View file

@ -1,4 +1,4 @@
from .app import main
if __name__ == "__main__":
main()
raise SystemExit(main())

File diff suppressed because it is too large Load diff