Marke im PDF um Faktor 1,5 vergroessert
Die erste Fassung war auf dem Ausdruck zu klein. Alle Masse haengen jetzt an PLAN_WATERMARK_SCALE, damit Schrift und Tasse gemeinsam wachsen und die Proportionen stimmen; das reservierte Band am Seitenfuss waechst mit (PLAN_WATERMARK_BAND_MM), damit die Tabelle weiterhin Abstand haelt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+26
-14
@@ -65,6 +65,13 @@ define('EXPORT_HARD_MIN_ROW_HEIGHT_MM', 2.0);
|
|||||||
// Overhead je Zeile. Ohne Beruecksichtigung summiert sich das ueber viele
|
// Overhead je Zeile. Ohne Beruecksichtigung summiert sich das ueber viele
|
||||||
// Zeilen zu mehreren mm und kann einen ungewollten Seitenumbruch ausloesen.
|
// Zeilen zu mehreren mm und kann einen ungewollten Seitenumbruch ausloesen.
|
||||||
define('EXPORT_ROW_OVERHEAD_MM', 0.2);
|
define('EXPORT_ROW_OVERHEAD_MM', 0.2);
|
||||||
|
// Groesse der Marke unten rechts (Hinweis auf die Kaffeeliste): Faktor auf
|
||||||
|
// alle Masse in MyCustomPDFWithWatermark::planWatermark(). Schrift und Tasse
|
||||||
|
// wachsen gemeinsam, damit die Proportionen stimmen.
|
||||||
|
define('PLAN_WATERMARK_SCALE', 1.5);
|
||||||
|
// Platz, den die Marke am Seitenfuss belegt - inklusive Dampffaehnchen und
|
||||||
|
// etwas Luft zur Tabelle.
|
||||||
|
define('PLAN_WATERMARK_BAND_MM', 8.0);
|
||||||
|
|
||||||
$allActive = ledger_fetch_participant_summaries($pdo, $tenantId, ['active_only' => true]);
|
$allActive = ledger_fetch_participant_summaries($pdo, $tenantId, ['active_only' => true]);
|
||||||
$memberCount = count($allActive);
|
$memberCount = count($allActive);
|
||||||
@@ -84,9 +91,9 @@ function export_page_row_budget_mm(bool $hasFooter, bool $hasSeitenHinweis, bool
|
|||||||
if ($hasFooter) {
|
if ($hasFooter) {
|
||||||
$budget -= 12.0;
|
$budget -= 12.0;
|
||||||
} elseif ($hasPlanWatermark) {
|
} elseif ($hasPlanWatermark) {
|
||||||
// Der Hinweis auf die Kaffeeliste braucht deutlich weniger Platz als
|
// Der Hinweis auf die Kaffeeliste braucht weniger Platz als eine
|
||||||
// eine Fusszeile - steht beides, deckt deren Band ihn mit ab.
|
// Fusszeile - steht beides, deckt deren Band ihn mit ab.
|
||||||
$budget -= 6.0;
|
$budget -= PLAN_WATERMARK_BAND_MM;
|
||||||
}
|
}
|
||||||
if ($hasSeitenHinweis) {
|
if ($hasSeitenHinweis) {
|
||||||
$budget -= EXPORT_HINT_ROW_MM;
|
$budget -= EXPORT_HINT_ROW_MM;
|
||||||
@@ -198,37 +205,42 @@ class MyCustomPDFWithWatermark extends TCPDF {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Alle Masse haengen an diesem Faktor, damit Schrift und Tasse
|
||||||
|
// gemeinsam wachsen und die Marke ihre Proportionen behaelt. 1.0 war
|
||||||
|
// die erste, zu kleine Fassung.
|
||||||
|
$skala = PLAN_WATERMARK_SCALE;
|
||||||
|
|
||||||
$rechterRand = $this->getPageWidth() - 5.0;
|
$rechterRand = $this->getPageWidth() - 5.0;
|
||||||
// Text und Symbol teilen sich eine gedachte Zeile: Cell() zentriert
|
// Text und Symbol teilen sich eine gedachte Zeile: Cell() zentriert
|
||||||
// den Schriftzug zuverlaessig in deren Hoehe, die Tasse wird auf
|
// den Schriftzug zuverlaessig in deren Hoehe, die Tasse wird auf
|
||||||
// dieselbe Mittellinie gezeichnet. Text() waere hier die schlechtere
|
// dieselbe Mittellinie gezeichnet. Text() waere hier die schlechtere
|
||||||
// Wahl - sein y-Bezugspunkt haengt an Schriftmetriken und ergab in
|
// Wahl - sein y-Bezugspunkt haengt an Schriftmetriken und ergab in
|
||||||
// der Probe einen um Millimeter versetzten Schriftzug.
|
// der Probe einen um Millimeter versetzten Schriftzug.
|
||||||
$zeilenHoehe = 4.0;
|
$zeilenHoehe = 4.0 * $skala;
|
||||||
$zeileOben = $this->getPageHeight() - 5.0 - $zeilenHoehe;
|
$zeileOben = $this->getPageHeight() - 5.0 - $zeilenHoehe;
|
||||||
$mitte = $zeileOben + ($zeilenHoehe / 2);
|
$mitte = $zeileOben + ($zeilenHoehe / 2);
|
||||||
|
|
||||||
$this->SetFont('helvetica', '', 7);
|
$this->SetFont('helvetica', '', 7 * $skala);
|
||||||
$this->SetTextColor(130, 130, 130);
|
$this->SetTextColor(130, 130, 130);
|
||||||
$textBreite = $this->GetStringWidth($this->planWatermarkLabel);
|
$textBreite = $this->GetStringWidth($this->planWatermarkLabel);
|
||||||
|
|
||||||
$tasseBreite = 2.6;
|
$tasseBreite = 2.6 * $skala;
|
||||||
$tasseHoehe = 2.2;
|
$tasseHoehe = 2.2 * $skala;
|
||||||
$abstand = 1.0;
|
$abstand = 1.0 * $skala;
|
||||||
$henkelBreite = 1.0;
|
$henkelBreite = 1.0 * $skala;
|
||||||
$tasseX = $rechterRand - $textBreite - $abstand - $tasseBreite - $henkelBreite;
|
$tasseX = $rechterRand - $textBreite - $abstand - $tasseBreite - $henkelBreite;
|
||||||
$tasseY = $mitte - ($tasseHoehe / 2);
|
$tasseY = $mitte - ($tasseHoehe / 2);
|
||||||
|
|
||||||
$this->SetDrawColor(130, 130, 130);
|
$this->SetDrawColor(130, 130, 130);
|
||||||
$this->SetLineWidth(0.2);
|
$this->SetLineWidth(0.2 * $skala);
|
||||||
|
|
||||||
// Tassenkoerper: nur unten abgerundet ('0011' = unten rechts/links).
|
// Tassenkoerper: nur unten abgerundet ('0011' = unten rechts/links).
|
||||||
$this->RoundedRect($tasseX, $tasseY, $tasseBreite, $tasseHoehe, 0.7, '0011', 'D');
|
$this->RoundedRect($tasseX, $tasseY, $tasseBreite, $tasseHoehe, 0.7 * $skala, '0011', 'D');
|
||||||
// Henkel: halber Bogen an der rechten Seite.
|
// Henkel: halber Bogen an der rechten Seite.
|
||||||
$this->Ellipse($tasseX + $tasseBreite, $mitte, 0.8, 0.6, 0, 270, 90, 'D');
|
$this->Ellipse($tasseX + $tasseBreite, $mitte, 0.8 * $skala, 0.6 * $skala, 0, 270, 90, 'D');
|
||||||
// Zwei Dampffaehnchen ueber der Tasse.
|
// Zwei Dampffaehnchen ueber der Tasse.
|
||||||
$this->Line($tasseX + 0.7, $tasseY - 1.1, $tasseX + 0.7, $tasseY - 0.4);
|
$this->Line($tasseX + (0.7 * $skala), $tasseY - (1.1 * $skala), $tasseX + (0.7 * $skala), $tasseY - (0.4 * $skala));
|
||||||
$this->Line($tasseX + 1.7, $tasseY - 1.1, $tasseX + 1.7, $tasseY - 0.4);
|
$this->Line($tasseX + (1.7 * $skala), $tasseY - (1.1 * $skala), $tasseX + (1.7 * $skala), $tasseY - (0.4 * $skala));
|
||||||
|
|
||||||
$this->SetXY($rechterRand - $textBreite, $zeileOben);
|
$this->SetXY($rechterRand - $textBreite, $zeileOben);
|
||||||
$this->Cell($textBreite, $zeilenHoehe, $this->planWatermarkLabel, 0, 0, 'R');
|
$this->Cell($textBreite, $zeilenHoehe, $this->planWatermarkLabel, 0, 0, 'R');
|
||||||
|
|||||||
Reference in New Issue
Block a user