Architektur
Diese Seite erklart, wie die Schichten von pptx-viewer zusammenpassen.
Schichtenubersicht
Framework viewers (React / Vue / Angular)
│
pptx-viewer-shared ← framework-unabhangige Render-Logik
│
pptx-viewer-core ← Engine: Analyse, Bearbeitung, Serialisierung
├── emf-converter ← EMF/WMF-Metadateien → PNG
└── mtx-decompressor ← MicroType Express-SchriftenDas Core-Paket
Das Core-Paket (pptx-viewer-core) ist ein reiner TypeScript-Engine, der in jeder JavaScript-Umgebung lauft.
Ladepipeline
- Der Aufrufer ubergibt einen
ArrayBufferanhandler.load(buffer). - JSZip entpackt das OpenXML-ZIP-Archiv.
- fast-xml-parser analysiert das XML der Teile.
- Parsing-Module bauen ein strukturiertes
PptxDataauf. - Designs, Master und Layouts werden aufgelost und angehangt.
Speicherpipeline
- Geanderte Folien werden in OpenXML-XML serialisiert.
- Beziehungen und Inhaltstypen werden neu aufgebaut.
- JSZip verpackt alles in ein
Uint8Array.
Die Viewer-Pakete
Jedes Viewer-Paket (React, Vue, Angular) enthalt:
- Rendering-Komponenten - konvertieren
PptxElementin HTML/CSS/SVG. - Reaktiver Zustand - Verwaltung von Auswahl, Zoom, Bearbeitungsverlauf.
- Hooks/Composables - exponiert Viewer-Operationen (React: 67+ benutzerdefinierte Hooks).
- Symbolleiste - das Office-Menüband in Tailwind CSS.
CSS-Rendering
Folien werden als HTML und CSS gerendert, nicht als Canvas. Das ergibt:
- Scharfen Text bei jedem Zoom.
- Native Zugangsfahigkeit (Textauswahl, Bildschirmlesegerate).
- DOM-Interaktivitat.
Der Kompromiss ist in den Einschrankungen dokumentiert.