feat(export): default-view option, Cyrillic PDF, per-wall projection pages

- Add 'Default View' scope to PNG export (fit-to-room for 2D, birds-eye for 3D)
- PDF now includes 3D top view, 2D default view, and every wall projection
- Embed DejaVu Sans TTF so Cyrillic room names render correctly in PDFs
- Preserve image aspect ratios and top-align on PDF pages
- Render each wall projection on its own PDF page at native aspect
- Mount a hidden per-wall projection renderer during export so all walls
  are captured even when the visible panel is in tab mode
- Keep 3D view mounted off-screen once requested so PDF can always snap
  to birds-eye without a visible view switch
- Outlet projection coordinate labels now show 3 decimal places
This commit is contained in:
2026-04-14 18:49:26 +03:00
parent ea4fb5c6c9
commit 68d2b5e3b0
11 changed files with 595 additions and 148 deletions
+12
View File
@@ -27,6 +27,7 @@
"@house-plan-maker/shared": "*",
"@react-three/drei": "^10.7.7",
"@react-three/fiber": "^9.5.0",
"dejavu-fonts-ttf": "^2.37.3",
"i18next": "^26.0.3",
"i18next-browser-languagedetector": "^8.2.1",
"jspdf": "^4.2.1",
@@ -3161,6 +3162,11 @@
"integrity": "sha512-f8mefEW4WIVg4LckePx3mALjQSPQgFlg9U8yaPdlsbdYcHQyj9n2zL2LJEA52smeYxOvmd/nB7TpMtHGMTHcug==",
"devOptional": true
},
"node_modules/dejavu-fonts-ttf": {
"version": "2.37.3",
"resolved": "https://registry.npmjs.org/dejavu-fonts-ttf/-/dejavu-fonts-ttf-2.37.3.tgz",
"integrity": "sha512-f1hd7jJbeQa1VWcw+K2KrTXS50zTMaHpVC4XIKJpNcDeYR5ajMtj/iLlQDYNvLOKamUB3ARVVCf79lNwNVztSQ=="
},
"node_modules/dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
@@ -7191,6 +7197,7 @@
"@types/react-dom": "^19.0.0",
"@types/three": "^0.183.1",
"@vitejs/plugin-react": "^4.3.0",
"dejavu-fonts-ttf": "*",
"i18next": "^26.0.3",
"i18next-browser-languagedetector": "^8.2.1",
"jsdom": "^26.0.0",
@@ -8513,6 +8520,11 @@
"integrity": "sha512-f8mefEW4WIVg4LckePx3mALjQSPQgFlg9U8yaPdlsbdYcHQyj9n2zL2LJEA52smeYxOvmd/nB7TpMtHGMTHcug==",
"devOptional": true
},
"dejavu-fonts-ttf": {
"version": "2.37.3",
"resolved": "https://registry.npmjs.org/dejavu-fonts-ttf/-/dejavu-fonts-ttf-2.37.3.tgz",
"integrity": "sha512-f1hd7jJbeQa1VWcw+K2KrTXS50zTMaHpVC4XIKJpNcDeYR5ajMtj/iLlQDYNvLOKamUB3ARVVCf79lNwNVztSQ=="
},
"dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",