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:
@@ -64,13 +64,14 @@ export async function buildPlanPdf(
|
|||||||
): Promise<jsPDF> {
|
): Promise<jsPDF> {
|
||||||
const { w: pageW, h: pageH } = pageSizeMm(opts.paper, opts.orientation);
|
const { w: pageW, h: pageH } = pageSizeMm(opts.paper, opts.orientation);
|
||||||
|
|
||||||
// Render-Szene EXAKT wie der Viewport erzeugen (keine Zusatz-Optionen —
|
// Render-Szene wie der Viewport erzeugen, dann als Papier-SVG serialisieren.
|
||||||
// `planToRenderScene(plan)` ist der vollstaendige Aufruf, siehe
|
// Einziger Unterschied zum Viewport-Aufruf: der echte Export-Massstab wird an
|
||||||
// `useWasmPlanRenderer.ts`), dann als Papier-SVG serialisieren. Etwas mehr
|
// `planToRenderScene` durchgereicht (derselbe `scaleDenominator` wie unten an
|
||||||
// unterer Rand, falls ein Schriftfeld gezeichnet wird (damit es nicht in
|
// `sceneToPrintSvg`), damit der Zeilenabstand mehrzeiliger Stempeltexte auch
|
||||||
// den Plan ragt).
|
// 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 margin = 10;
|
||||||
const scene = planToRenderScene(plan);
|
const scene = planToRenderScene(plan, opts.scaleDenominator);
|
||||||
const print = sceneToPrintSvg(scene, {
|
const print = sceneToPrintSvg(scene, {
|
||||||
scaleDenominator: opts.scaleDenominator,
|
scaleDenominator: opts.scaleDenominator,
|
||||||
pageWidthMm: pageW,
|
pageWidthMm: pageW,
|
||||||
|
|||||||
Reference in New Issue
Block a user