PDF-Export: echten Massstab an planToRenderScene durchreichen (Audit-Fund #3, Abschluss)

buildPlanPdf ruft planToRenderScene(plan, opts.scaleDenominator) statt des
Default 1:100 → der Stempel-Zeilenabstand mehrzeiliger Texte ist jetzt auch im
PDF bei Nicht-1:100-Massstab papier-mm-genau (identischer Nenner wie an
sceneToPrintSvg). Schliesst den in der vorigen Änderung offen gelassenen
Aufrufer-Punkt.
This commit is contained in:
2026-07-03 18:56:08 +02:00
parent b6e902a809
commit b353ed34ae
+7 -6
View File
@@ -64,13 +64,14 @@ export async function buildPlanPdf(
): Promise<jsPDF> {
const { w: pageW, h: pageH } = pageSizeMm(opts.paper, opts.orientation);
// Render-Szene EXAKT wie der Viewport erzeugen (keine Zusatz-Optionen —
// `planToRenderScene(plan)` ist der vollstaendige Aufruf, siehe
// `useWasmPlanRenderer.ts`), dann als Papier-SVG serialisieren. Etwas mehr
// unterer Rand, falls ein Schriftfeld gezeichnet wird (damit es nicht in
// den Plan ragt).
// Render-Szene wie der Viewport erzeugen, dann als Papier-SVG serialisieren.
// Einziger Unterschied zum Viewport-Aufruf: der echte Export-Massstab wird an
// `planToRenderScene` durchgereicht (derselbe `scaleDenominator` wie unten an
// `sceneToPrintSvg`), damit der Zeilenabstand mehrzeiliger Stempeltexte auch
// bei Nicht-1:100-Massstab papier-mm-genau stimmt. Etwas mehr unterer Rand,
// falls ein Schriftfeld gezeichnet wird (damit es nicht in den Plan ragt).
const margin = 10;
const scene = planToRenderScene(plan);
const scene = planToRenderScene(plan, opts.scaleDenominator);
const print = sceneToPrintSvg(scene, {
scaleDenominator: opts.scaleDenominator,
pageWidthMm: pageW,