mirror of
https://github.com/AxonByteDev/paperless-asn-label-generator.git
synced 2026-08-06 08:42:03 +00:00
Compare commits
12 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d07abc8cab | ||
|
|
d2f1f3c6b0 | ||
|
|
4c669debb5 | ||
|
|
ae067c5d92 | ||
|
|
3728f0df51 | ||
|
|
07124f52e7 | ||
|
|
739813b990 | ||
|
|
71ed2e5c3e | ||
|
|
6f7476f137 | ||
|
|
c448e8bb75 | ||
|
|
904384227b | ||
|
|
a636675bbe |
7 changed files with 796 additions and 161 deletions
33
CHANGELOG.md
33
CHANGELOG.md
|
|
@ -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
201
README.md
|
|
@ -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
BIN
assets/screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
|
|
@ -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"]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
__all__ = ["__version__"]
|
||||
__version__ = "0.1.2"
|
||||
__version__ = "0.1.6"
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue