Word Automation Services in SharePoint 2013

In SharePoint 2010 wurden wir erstmals mit den Word Automation Services beglückt. Diese waren für eine Demo ganz nett, für den Einsatz im produktiven Umfeld fehlten jedoch schnell kleine, aber bedeutende Funktionen. Diese wurden mit SharePoint 2013 nun endlich nachgeliefert. Die bedeutenden neuen Funktionen sind:

  • Konvertierung von und in unterschiedliche Formate (.doc, .docx, .pdf)
  • (Funktionierende) Aktualisierung von Inhaltsverzeichnissen, Verzeichnissen und Feldern
  • Synchrone Konvertierung (Stream in – Stream out)

Diese Funktionen ermöglichen bedeutende Möglichkeiten der Einbindung der Word Automation Services in eigene Lösungen. Zum Beispiel:

  • On-Demand Konvertierung von Dokumenten in PDF
  • Erstellen von Serienbriefen auf Basis von Word-Vorlagen und Dateninhalten
  • Dynamisches Erstellen von Berichten basierend auf Word-Vorlagen

Im Vergleich zu anderen Reporting Technologien haben Word-Vorlagen den grossen Vorteil, dass Endanwender die Vorlagen ohne spezifische Technologiekenntnisse sehr einfach erstellen oder anpassen können.

Leider stehen die Word Automation Services Funktionen nur in der Server API zur Verfügung. Für die Verwendung in Client-Applikationen oder Workflows empfehle ich die Kapselung der benötigten Funktionen in einem eigenen WebService.


Synchrone Konvertierung
Ein Dokument wird wie folgt synchron konvertiert.

// Instanziierung der Automation Services. Das Argument ist der Name des Proxy
// so wie dieser in der Zentraladministration erstellt wurde.
SyncConverter syncConverter = new SyncConverter(„Word Automation Services“);

// Eine Einstellung ist das Output-Format. Hier als Beispiel PDF. Es sind weitere
// Einstellungen möglich.
syncConverter.Settings.OutputFormat = SaveFormat.PDF;

// In der Convert() Methode wird der Input-Stream (streamInput) verarbeitet und in
// den Output-Stream (streamOutput) geschrieben.
ConversionItemInfo conversionInfo = syncConverter.Convert(streamInput, streamOutput);

Asynchrone Konvertierung
Ein Dokument wird wie folgt asynchron konvertiert. Das Ausgangsdokument ist in einer SharePoint Dokumentbibliothek enthalten und das Ergebnis wird in eine beliebige Dokumentbibliothek gespeichert.

// Instanziierung der Automation Services. Das Argument ist der Name des Proxy
// so wie dieser in der Zentraladministration erstellt wurde.
ConversionJob conversionJob = new ConversionJob(„Word Automation Services“);

// Angabe des Benutzers, mit dem die Konvertierung durchgeführt wird
conversionJob.UserToken = SPContext.Current.Web.CurrentUser.UserToken;

// Angabe des der Input-Url, Output-Url inklusive des Dateinamens und der Endung
// Beispiel: fileUrlInput = http://myserver/documents/MeineDatei.docx
// Beispiel: fileUrlOutput = http://myserver/documents/MeineDatei.pdf
conversionJob.AddFile(fileUrlInput, fileOutputUrl);

// Asynchroner Start des Konvertierungsdienstes. Der Dienst wird in der Zentraladministration
// konfiguriert.
conversionJob.Start();

Potential
Dokumente können nicht nur serverseitig aktualisiert und in PDF konvertiert werden, die Word-Vorlagen können auch mit Daten beliebig angereichert werden. Diese Funktion ist ideal für das Generieren von Seriendokumenten oder dynamischen Berichten. Dazu wird am besten der Open XML SDK eingesetzt: http://www.microsoft.com/en-us/download/details.aspx?id=30425.

Den Einstieg in die Verwendung des Open XML SDK erleichtern folgende Ressourcen:

Erkenntnisse
Folgende Erkenntnisse habe ich aus der Verwendung der Word Automation Services 2013 in Kombination mit dem Open XML SDK 2.5 gewonnen:

  • Sowohl die synchrone als auch asynchrone Konvertierung funktioniert mit den bisherigen Anforderungen einwandfrei (Vorlage, Content Placeholder, Bilder).
  • Der Dienst ist zuverlässig und stabil bei Tests bis zu 50‘000 Dokumenten.
  • Auf dem Test-Gerät lag der Durchsatz inkl. dynamischer Aufbereitung und Konvertierung in PDF bei 3-4 Dokumenten pro Sekunde (Hardwareanforderungen gemäss best practice).
  • Die generierten PDF Dateien waren in ihrer Dateigrösse leider etwas gross. Die generierten Dateien von ca. 300kb konnten durch das Speichern mit Adobe Acrobat ohne Qualitätsverlust um 65-70% verkleinert werden.

Weitere Anforderungen?
Bei weiteren Anforderungen, zum Beispiel für das regelbasierte Zusammensetzen komplexer Dokumente aus unterschiedlichen Vorlagen oder der Verwendung komplexer auf Dateninhalten basierenden Vorlagen bietet der EDC Server von officeatwork weitere interessante Funktionen: http://www.officeatwork.com/chde/produkte/officeatwork-server/officeatwork-edc-server/.

0 Responses to “Word Automation Services in SharePoint 2013”



  1. Schreibe einen Kommentar

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s





%d Bloggern gefällt das: