From f678608140c8ec90ef889eab0b6dd5caaf95fd6a Mon Sep 17 00:00:00 2001 From: fs Date: Fri, 31 Jul 2026 18:09:59 +0200 Subject: [PATCH] =?UTF-8?q?Druckfassung:=20alle=20B=C3=B6gen=20randabfalle?= =?UTF-8?q?nd,=20unterer=20Wei=C3=9Fstreifen=20weg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Im Druck war oben fast kein Rand und unten viel — im Chrome-Export etwa 3 zu 8 mm. Der Rand war nicht die Ursache: der Blatt-Inhalt war über eine aspect-ratio bemaßt und nur 199,1 mm hoch statt 210 mm. Die fehlenden 10,9 mm sammelten sich immer unten, weil der Inhalt oben ausgerichtet ist. Gemessen an Blatt 4 des erzeugten PDF: margin 5mm -> oben 4,8 / unten 5,8 mm (Rest 0,6 fiel kaum auf) margin 0 -> oben 0,0 / unten 10,9 mm (der ganze Rest unten) Ein Rand hätte den Fehler also nur kaschiert. Randabfallend ist die geometrisch saubere Lösung, weil zwei A5 exakt ein A4 quer sind (2 x 148,5 = 297 mm, Überschuss null) — es bleibt nichts zu verteilen. Umgesetzt durch Auflösen einer Ausnahme statt neuer Sonderregeln: die zwei Umschlagbögen liefen längst randabfallend (@page umschlag, Fläche 210mm), das gilt jetzt für alle Bögen. Damit fällt auch der Bruch weg, dass der Umschlag anders gedruckt wurde als die Innenblätter. Nachgemessen: oben und unten je 0,0 mm auf Blatt 1, 4 und 6. Verbleibendes Weiß steckt in den Anzeigenmotiven selbst (viele Sponsoren gestalten auf weißem Grund, 100% weiße Randpixel) und ist nicht unser Layout. Sichtprüfung an Blatt 4: Sportfest-Plakat läuft bis an alle vier Kanten, nichts beschnitten. Bewusst in Kauf genommen (Felix): der Bürodrucker beschneidet auf sein Hardware-Minimum von 4 bis 5 mm und liefert den Rand selbst. Unser Fließtext verliert dabei nichts, die Live-Seiten haben 9,9 mm Innenabstand. Ein Falz-Abstand entfällt, die Seiten stoßen mittig aneinander. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01NzeVVgMCrzCDJAKeLEdKr7 --- CLAUDE.md | 21 +++++++++++-- public/assets/css/components.css | 52 +++++++++++++++++++------------- 2 files changed, 50 insertions(+), 23 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 10ef991..8e7589f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -723,8 +723,25 @@ Druckfassung füllt notfalls mit weißen Leerseiten VOR der Rückseite auf. Auf die Route eine Blatt-Vorschau (A4-quer-Flächen mit „Blatt 1 · Vorderseite"-Labels) samt Anleitung (**beidseitig, an der kurzen Kante spiegeln**); `assets/js/stadionzeitung-druck.js` liefert nur den „Jetzt drucken"-Button (`window.print()`, progressive enhancement — ohne JS Strg/Cmd+P). **Kein -serverseitiges PDF-Tool** (passt zur Ghostscript/Imagick-Vermeidung oben). Bürodrucker mit weißem -Rand ist der Anspruch (bewusst gleichmäßiges Passepartout, kein Randabfallend). `@media print` +serverseitiges PDF-Tool** (passt zur Ghostscript/Imagick-Vermeidung oben). + +**Alle Bögen laufen RANDABFALLEND** (`@page { margin: 0 }`, Beschluss 31.07.2026 — vorher galt hier +„Bürodrucker mit weißem Rand ist der Anspruch, bewusst gleichmäßiges Passepartout"). Der Wechsel kam +aus einem gemessenen Fehler: die Innenblätter hatten einen 5mm-Rahmen, die zwei Umschlagbögen nicht, +und der Blatt-Inhalt war über eine `aspect-ratio` bemaßt und nur **199,1mm** hoch statt 210mm. Die +fehlenden 10,9mm sammelten sich **immer unten**, weil der Inhalt oben ausgerichtet ist — gemessen an +Blatt 4: mit `margin: 5mm` oben 4,8 / unten 5,8mm, mit `margin: 0` oben 0,0 / unten 10,9mm. Ein Rand +kaschierte den Fehler, behob ihn aber nicht. Randabfallend ist die saubere Lösung, weil **zwei A5 +exakt ein A4 quer sind** (2 × 148,5 = 297mm, Überschuss null): es bleibt nichts zu verteilen. +Nachgemessen im erzeugten PDF: oben und unten je 0,0mm auf jedem Bogen. Verbleibendes Weiß steckt in +den **Anzeigenmotiven selbst** (viele Sponsoren gestalten auf weißem Grund, 100% weiße Randpixel) und +ist nicht unser Layout. Den Rand liefert der Bürodrucker aus seinem Hardware-Minimum (~4 bis 5mm); +unser Fließtext verliert dabei nichts, die Live-Seiten haben 6,7cqi = 9,9mm Innenabstand. +**Keine `@page`-Randbreite wieder einführen, ohne die Blatt-Höhe gegenzurechnen** — sonst ist der +Überschuss zurück. Es gibt bewusst auch keinen Falz-Abstand mehr: die beiden Seiten stoßen mittig +aneinander, der Innenabstand der Seiten hält den Inhalt aus dem Knick. + +`@media print` (`:has()`-Scope auf Viewer/Druckfassung, andere Seiten bleiben unangetastet) regelt nur Layout — Farben sind digital bereits hell. Der normale Viewer druckt als einfacher Seiten-Stapel (Fallback); fürs Heft immer die Druckfassung nehmen. Bei Änderungen an Komponenten, die in einer Ausgabe diff --git a/public/assets/css/components.css b/public/assets/css/components.css index 74fefd9..0ca269c 100644 --- a/public/assets/css/components.css +++ b/public/assets/css/components.css @@ -8018,37 +8018,47 @@ body.lightbox-open { text-shadow: none !important; } - @page { - size: A4 landscape; - margin: 5mm; - } + /* ALLE Bögen laufen randabfallend (Beschluss 31.07.2026, Felix). + Vorher hatten nur die zwei Umschlagbögen `margin: 0`, die Innenblätter + einen 5mm-Rahmen — und genau daraus entstand die Ungleichmäßigkeit, die + im Druck störte. Der Rahmen war nämlich nicht das Problem: der + Blatt-Inhalt war über eine aspect-ratio bemaßt und nur 199,1mm hoch + statt 210mm. Die fehlenden 10,9mm sammelten sich IMMER unten, weil der + Inhalt oben ausgerichtet ist. Gemessen an Blatt 4: + margin 5mm → oben 4,8 / unten 5,8 mm (Rest 0,6 fiel kaum auf) + margin 0 → oben 0,0 / unten 10,9 mm (der ganze Rest unten) + Ein Rand hätte den Fehler also nur kaschiert, nicht behoben. - /* Der UMSCHLAGBOGEN (Druckseite 1 = Rückseite + Cover, Druckseite 2 = - Vorwort + Impressum) läuft randabfallend: named page mit margin 0, - die beiden Seiten füllen je eine A4-Hälfte (148,5×210mm — praktisch - exakt A5-Proportion, keine Verzerrung). Auf Druckern mit - Randlos-Modus/im Copyshop wird das echt randlos, Bürodrucker - beschneiden auf ihr Hardware-Minimum (~4mm weiß statt unserer 5mm). */ - @page umschlag { + Randabfallend ist hier die geometrisch saubere Lösung, weil zwei A5 + EXAKT ein A4 quer sind (2 × 148,5 = 297mm, Überschuss null). Es bleibt + nichts zu verteilen, die Asymmetrie kann nicht mehr entstehen. + + Was der Bürodrucker daraus macht, ist bewusst in Kauf genommen: er + beschneidet auf sein Hardware-Minimum (~4 bis 5mm) und liefert damit + selbst einen Rand. Unser Fließtext verliert dabei nichts, die + Live-Seiten haben 6,7cqi = 9,9mm Innenabstand. Ein Copyshop mit + Randlos-Modus druckt es wirklich bis an die Kante. + KEINE @page-Randbreite wieder einführen, ohne die Blatt-Höhe + gegenzurechnen — sonst ist der Überschuss zurück. */ + @page { size: A4 landscape; margin: 0; } - .stadionzeitung-druck__blatt:nth-child(-n+2) { - page: umschlag; - } - - .stadionzeitung-druck__blatt:nth-child(-n+2) .stadionzeitung-druck__flaeche { + /* Diese vier Regeln galten vorher nur für die Umschlagbögen + (`:nth-child(-n+2)`) und sind jetzt der Normalfall — die Ausnahme wurde + aufgelöst, nicht erweitert. */ + .stadionzeitung-druck__blatt .stadionzeitung-druck__flaeche { height: 210mm; } - .stadionzeitung-druck__blatt:nth-child(-n+2) .stadionzeitung-druck__slot { + .stadionzeitung-druck__blatt .stadionzeitung-druck__slot { flex: 1; } - .stadionzeitung-druck__blatt:nth-child(-n+2) .stadionzeitung-page__img, - .stadionzeitung-druck__blatt:nth-child(-n+2) .stadionzeitung-cover, - .stadionzeitung-druck__blatt:nth-child(-n+2) .stadionzeitung-page { + .stadionzeitung-druck__blatt .stadionzeitung-page__img, + .stadionzeitung-druck__blatt .stadionzeitung-cover, + .stadionzeitung-druck__blatt .stadionzeitung-page { width: 100%; height: 100%; aspect-ratio: auto; @@ -8058,7 +8068,7 @@ body.lightbox-open { /* Vorwort/Termine bringen eine eigene aspect-ratio mit — auf dem randlosen Bogen sollen sie die volle Slot-Höhe füllen (das Wiesen-Foto blutet dann bis an die Blattkante). */ - .stadionzeitung-druck__blatt:nth-child(-n+2) .stadionzeitung-vorwort { + .stadionzeitung-druck__blatt .stadionzeitung-vorwort { aspect-ratio: auto; height: calc(100% + 2 * var(--space-l)); }