feat(export): ODT en ODP als open exportformaten (#1768, #1769) #1773

Merged
brenno merged 1 commit from feat/odt-odp-export-1768-1769 into main 2026-08-24 12:22:10 +00:00
Owner

Summary

  • ODT (OpenDocument Text, ISO 26300) als documentexportformaat (#1768): bewerkbare OpenDocument-XML in een ZIP met native voetnoten, koppen met outline-levels, tabellen, lijsten en afbeeldingen als aparte entries. Opent in LibreOffice en Word.
  • ODP (OpenDocument Presentation) als deck-exportformaat (#1769): een afbeelding per slide, dezelfde aanpak als PPTX. Opent in LibreOffice Impress.
  • Beide formaten hergebruiken de bestaande archive-package (geen nieuwe dependency) en volgen hetzelfde patroon als ePub/PPTX: headless service, case in export-switch, optie in dialoog, l10n in 31 talen.
  • PPTX-builder uit export_service.dart naar lib/services/pptx/deck_pptx_export.dart verplaatst (1036 naar 578 regels).

Test plan

  • make check groen (10537 tests, 87.1% dekking)
  • ODT-structuur, inhoud, voetnoten, afbeeldingen, privacy fail-closed
  • ODP-structuur, image-per-slide, privacy fail-closed
  • l10n in alle 31 talen

Closes #1768, #1769

Generated with Devin

## Summary - ODT (OpenDocument Text, ISO 26300) als documentexportformaat (#1768): bewerkbare OpenDocument-XML in een ZIP met native voetnoten, koppen met outline-levels, tabellen, lijsten en afbeeldingen als aparte entries. Opent in LibreOffice en Word. - ODP (OpenDocument Presentation) als deck-exportformaat (#1769): een afbeelding per slide, dezelfde aanpak als PPTX. Opent in LibreOffice Impress. - Beide formaten hergebruiken de bestaande archive-package (geen nieuwe dependency) en volgen hetzelfde patroon als ePub/PPTX: headless service, case in export-switch, optie in dialoog, l10n in 31 talen. - PPTX-builder uit export_service.dart naar lib/services/pptx/deck_pptx_export.dart verplaatst (1036 naar 578 regels). #### Test plan - [x] make check groen (10537 tests, 87.1% dekking) - [x] ODT-structuur, inhoud, voetnoten, afbeeldingen, privacy fail-closed - [x] ODP-structuur, image-per-slide, privacy fail-closed - [x] l10n in alle 31 talen Closes #1768, #1769 Generated with [Devin](https://devin.ai)
feat(export): ODT en ODP als open exportformaten (#1768, #1769)
All checks were successful
scans / scans (pull_request) Successful in 4m10s
static-gate / static-gate (pull_request) Successful in 10m0s
22325f46a5
ODT (OpenDocument Text, ISO 26300) als documentexportformaat: bewerkbare
OpenDocument-XML in een ZIP met native voetnoten, koppen met outline-levels,
tabellen, lijsten en afbeeldingen als aparte entries. Opent in LibreOffice
en Word — het open tegenhanger van een Word-bestand.

ODP (OpenDocument Presentation) als deck-exportformaat: één afbeelding per
slide, dezelfde aanpak als PPTX. Opent in LibreOffice Impress — het open
tegenhanger van PowerPoint.

Beide formaten hergebruiken de bestaande `archive`-package (geen nieuwe
dependency) en volgen hetzelfde patroon als de ePub- en PPTX-export:
headless service, case in de export-switch, optie in de dialoog, l10n in
31 talen, en tests die structuur, inhoud en privacy-fail-closed bewaken.

Als onderdeel van deze wijziging is de PPTX-builder uit export_service.dart
gehaald en naar lib/services/pptx/deck_pptx_export.dart verplaatst — het
zelfde patroon als ODT/ODP/ePub/PDF — waardoor het bestand van 1036 naar
578 regels kromp en onder de file-size ceiling bleef.

Closes #1768, #1769

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno merged commit a3d90871e7 into main 2026-08-24 12:22:10 +00:00
Sign in to join this conversation.
No description provided.