Skip to content

feat(pdf): neues Paket basicbar-pdf (0.1.0) - #30

Merged
rrolf merged 1 commit into
mainfrom
feat/pdf
Nov 11, 2026
Merged

rrolf merged 1 commit into
mainfrom
feat/pdf

Conversation

@rrolf

@rrolf rrolf commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

Gemeinsamer PDF-Rahmen für herunterladbare Dokumente der -bar-Tools.

Herkunft: abstimmbar backend/common/pdf.py (Sitzungsprotokoll, abstimmbar ADR-0008), unverändert im Kern: Plus Jakarta Sans (OFL, mitgeliefert), Fußzeile „Seite x von y“, Editor-HTML → Flowables, box/keep_together und die Robustheits-Fixes (überlange Überschriften, TipTap-Listen).

Erweitert für kalkulierbar (personnel/report_render.render_pdf):

  • landscape=True, margin_mm und author;
  • table(..., col_widths="auto", align_right_from=1, strong_rows=[…]) für Zahlentabellen (die Spaltenbreiten-Logik stammt aus kalkulierbar _widths);
  • usable_width und add(*flowables).

Ohne Django: Seitenangabe und Bild-Platzhalter sind Parameter (gettext_lazy funktioniert). So muss das Paket keinen eigenen Übersetzungskatalog mitbringen, den makemessages der Tools nicht sieht.

  • Abhängigkeit reportlab>=4.4,<6, lokal mit 4.4.4 und 5.1.0 getestet (17 Tests). pypdf nur als Extra [test].
  • CI: pdf ist in die Paket-Matrix aufgenommen; die Matrix installiert jetzt .[test], das schadet den anderen Paketen nicht.

Nach dem Merge braucht es den Tag pdf/v0.1.0. Danach stellt abstimmbar um, später kalkulierbar.

🤖 Generated with Claude Code

Moved from abstimmbar (common/pdf.py, protocol PDF) and extended for
kalkulierbar's reports: landscape, margins, author, auto column widths,
right-aligned number columns, bold total rows, raw flowables. Bundles
Plus Jakarta Sans (OFL). No Django dependency: footer label and image
placeholder are parameters (lazy translations work).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rrolf
rrolf merged commit 0235c4b into main Nov 11, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant