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
@@ -259,8 +259,14 @@
"properties.wallLightStyle.pendant-globe": "Подвесной шар",
"properties.wallLightStyle.sconce-up": "Бра вверх",
"properties.wallLightStyle.sconce-down": "Бра вниз",
"properties.wallLightStyle.wood-cube": "Деревянный куб",
"properties.legs": "Ножки",
"properties.legHeight": "Высота ножек",
"properties.cordLength": "Длина шнура",
"properties.lampSize": "Размер светильника",
"properties.acUnitStyleLabel": "Стиль",
"properties.acUnitStyle.generic": "Обычный",
"properties.acUnitStyle.lg": "LG",
"properties.surfaceTexture": "Поверхность",
"furnitureTexture.NONE": "Нет (сплошной цвет)",
"furnitureTexture.WOOD_LIGHT": "Светлое дерево",
@@ -344,7 +350,12 @@
"export.json": "JSON данные",
"export.scope": "Область",
"export.currentView": "Текущий вид",
"export.defaultView": "Вид по умолчанию",
"export.allRoomViews": "Все виды комнаты",
"export.pdfIncludesLabel": "PDF содержит",
"export.pdfIncludes3DTop": "3D вид сверху (по умолчанию)",
"export.pdfIncludes2DDefault": "2D план (вид по умолчанию)",
"export.pdfIncludesProjections": "Все проекции стен (вид по умолчанию)",
"export.options": "Параметры",
"export.includeGrid": "Включить сетку",
"export.scaleFactor": "Масштаб:",