33
Zentrale Dokumentengenerierun g mit dem Open XML SDK André Krämer Softwareentwickler, Trainer, Berater

Zentrale Dokumentengenerierung mit dem Open XML SDK

Embed Size (px)

DESCRIPTION

Ob Rechnung, Teilnahmebescheinigung, Urlaubsantrag, Tätigkeitsnachweis oder Artikelstückliste: Heutzutage gibt es unzählige standardisierte Dokumente, die Tag für Tag in Unternehmen erstellt werden. Dass die manuelle Erzeugung keine Alternative ist, dürfte jedem klar sein. Schließlich bindet sie unnötige Ressourcen und ist fehleranfällig. Doch wie sieht die Alternative aus? VSTO oder sogar Word Automatisierung, so wie man es in den 90ern gemacht hat? In diesem Vortrag werden Sie eine weitere Alternative für die serverseitige Dokumentengenerierung kennen lernen: Das Microsoft Office Open XML SDK. Nach einem kurzen Überblick über den Aufbau und den Funktionsumfang des SDKs werden Sie Anhand von praxisnahen Live Demos erfahren, wie Sie kostenlos Word Kompatible (*.docx) Dokumente erzeugen können. Dabei werden Sie jedoch nicht nur erfahren, was alles geht, sondern auch wo die Grenzen sind.

Citation preview

Page 1: Zentrale Dokumentengenerierung mit dem Open XML SDK

Zentrale Dokumentengenerierun

g mit dem Open XML SDK

André Krämer

Softwareentwickler, Trainer, Berater

Page 2: Zentrale Dokumentengenerierung mit dem Open XML SDK

Video Trainings ZertifizierungenAuszeichnungen

Page 3: Zentrale Dokumentengenerierung mit dem Open XML SDK

Herausforderung

• Unternehmen erzeugen täglich individualisierte elektronische Dokumente in hoher Stückzahl• Angebote• Rechnungen• Teilnehmerzertifikate• Einladungsschreiben• ….

Page 4: Zentrale Dokumentengenerierung mit dem Open XML SDK

Lösungsansatz: Manuelles Erstellen

• Zeitaufwändig• Mitarbeiter stehen in dieser Zeit nicht für wichtigere

Aufgaben zur Verfügung• Fehleranfällig

Page 5: Zentrale Dokumentengenerierung mit dem Open XML SDK

Lösungsansatz: Word Automatisierung

• Sehr beliebt Ende der 90er• Setzt ein installiertes Word voraus• Scheidet auf dem Server aus• Anwender benötigt spezielle Word- Version• Läuft selten stabil

Page 6: Zentrale Dokumentengenerierung mit dem Open XML SDK
Page 7: Zentrale Dokumentengenerierung mit dem Open XML SDK

Office Open XML

• Offener Standard (ECMA-376) seit 2006• Word, Excel, PowerPoint

• WordProcessingML• SpreadsheetML• PresentationML

• De facto Standard für Austauschformate

Page 8: Zentrale Dokumentengenerierung mit dem Open XML SDK

Office Open XML

• Zip Container• Enthält XML und binäre Inhalte in einer Ordner-Struktur

Page 9: Zentrale Dokumentengenerierung mit dem Open XML SDK

Demo

Page 10: Zentrale Dokumentengenerierung mit dem Open XML SDK

Aufbau Open XML

ZIP Container

[Content_Types]

docProps

app/core

Title, Author, Application

word

document

w:document

w:bodyw:run

styles

StylesTab positions

rels

rels

Page 11: Zentrale Dokumentengenerierung mit dem Open XML SDK
Page 12: Zentrale Dokumentengenerierung mit dem Open XML SDK

Zugriff auf das Dokument per Quellcode (lesend)

• Entpacken der Datei• Entsprechende XML Datei in XmlDocument laden• Passende Knoten über XPath-Queries suchen.

Page 13: Zentrale Dokumentengenerierung mit dem Open XML SDK

Zugriff auf das Dokument per Quellcode (lesend)

• Entpacken der Datei• Entsprechende XML Datei in XmlDocument laden• Passende Knoten über XPath-Queries suchen.

Page 14: Zentrale Dokumentengenerierung mit dem Open XML SDK

Lösungsansatz: Microsoft Open XML SDK

• Wrapper um das ECMA-376 Office Open XML Dateiformat• Liest und schreibt .docx• Benötigt kein installiertes Word• Wird auf dem Server unterstützt

Page 15: Zentrale Dokumentengenerierung mit dem Open XML SDK
Page 16: Zentrale Dokumentengenerierung mit dem Open XML SDK
Page 17: Zentrale Dokumentengenerierung mit dem Open XML SDK
Page 18: Zentrale Dokumentengenerierung mit dem Open XML SDK
Page 19: Zentrale Dokumentengenerierung mit dem Open XML SDK

DemoOpen XML SDK Productivity Tool

(Quellcode: Siehe http://andrekraemer.de)

Page 20: Zentrale Dokumentengenerierung mit dem Open XML SDK

DemoDokumenteigenschaften auslesen

(Quellcode: Siehe http://andrekraemer.de)

Page 21: Zentrale Dokumentengenerierung mit dem Open XML SDK

Notwendige Referenzen

Page 22: Zentrale Dokumentengenerierung mit dem Open XML SDK

string fileName = @"C:\DemoDocs\Hallo Basta.docx"; using (var document = WordprocessingDocument.Open(fileName, false)) {     string author = document.PackageProperties.Creator;     Console.WriteLine(author); }

Page 23: Zentrale Dokumentengenerierung mit dem Open XML SDK

DemoNeues Dokument erzeugen

(Quellcode: Siehe http://andrekraemer.de)

Page 24: Zentrale Dokumentengenerierung mit dem Open XML SDK

DemoText eines Dokuments auslesen

(Quellcode: Siehe http://andrekraemer.de)

Page 25: Zentrale Dokumentengenerierung mit dem Open XML SDK

DemoTeilnehmerliste

(Quellcode: Siehe http://andrekraemer.de)

Page 26: Zentrale Dokumentengenerierung mit dem Open XML SDK

DemoTeilnehmerliste (Verbessert)

(Quellcode: Siehe http://andrekraemer.de)

Page 27: Zentrale Dokumentengenerierung mit dem Open XML SDK

DemoSchulungszertifikat

(Quellcode: Siehe http://andrekraemer.de)

Page 28: Zentrale Dokumentengenerierung mit dem Open XML SDK

Fazit

Page 29: Zentrale Dokumentengenerierung mit dem Open XML SDK

Open XML SDK

• Manipulation von Dokumenten ohne installiertes Word möglich• Sehr performant (Dokumente mit mehreren 100 Seiten

in weniger als 5 Minuten)• Gut Dokumentiert

Page 30: Zentrale Dokumentengenerierung mit dem Open XML SDK

Open XML SDK

• Reiner Wrapper um das Dateiformat, nicht um die Word Oberfläche!• Der Entwickler benötigt Wissen über die internen Word

Strukturen• Auch „einfache“ Aufgaben sind in der Umsetzung sehr

aufwändig• Defensive Programmierung ist wichtig!

Page 31: Zentrale Dokumentengenerierung mit dem Open XML SDK

Grenzen des Open XML SDK

• Zugriff auf das Word UI• Konvertierung von Dokumenten (PDF, DOC, RTF, HTML)• Extrahieren von Bildern • Automatische Aktualisierung von Feldern (z. B.

Fußnotennummerierung)• Drucken

Page 32: Zentrale Dokumentengenerierung mit dem Open XML SDK

Alternative

Page 33: Zentrale Dokumentengenerierung mit dem Open XML SDK

33

Homepage

[email protected] | http://andrekraemer.de | http://andrekraemer.de/blog

Vielen Dank!

Blog

Xing

Facebook

Twitter

Google+

Schulung und Beratung mit den Schwerpunkten:• Windows 8 und Windows Phone Apps• ASP.NET MVC, Web API & JavaScript• Team Foundation Server / ALM• Automatische Dokumentengenerierung mit TX Text

Control• Performance- & Memory Analysen• Softwarearchitektur