21.10 XPS-Dokumente mit »DocumentViewer«
21.10.1 Allgemeines zum XPS-Format
Mit dem XPS-Format (XML Paper Specification) hat Microsoft das Pendant zu Adobes PDF-Format ins Rennen geschickt. Unter .NET werden XPS-Dokumente als FixedDocument-Objekte dargestellt. Im Gegensatz zu FlowDocument-Objekten ist deren Seitenformat unveränderlich. XPS-Dokumente besitzen auf dem Bildschirm und auf dem Drucker immer die gleiche Darstellung.
XPS-Dokumente haben unter anderem die folgenden Eigenschaften:
- XPS-Dokumente können nicht bearbeitet werden und haben immer die gleiche Struktur.
- Die Daten eines XPS-Dokuments befinden sich in einer XPS-Datei, die im ZIP-Format gespeichert wird.
- Mit der Installation des .NET Frameworks (ab Version 3.0) kann auch der Internet Explorer als Viewer von XPS-Dokumenten verwendet werden.
- Microsofts Betriebssysteme ab Vista verfügen über einen XPS-Druckertreiber.
- Das Office-Paket unterstützt das Exportieren von XPS-Dokumenten.
Inwieweit sich das XPS-Format gegenüber dem PDF-Format etablieren oder gar durchsetzen kann, bleibt abzuwarten. Der Internet Explorer als Betrachter von XPS-Dokumenten bleibt mit seinen Fähigkeiten noch immer hinter dem Adobe Reader zurück. Zudem sind XPS-Dokumente wesentlich größer als gleichwertige PDF-Dateien.
21.10.2 Beispielprogramm
Zur Darstellung von XPS-Dokumenten stellt die WPF mit DocumentViewer ein eigenes Steuerelement bereit. An der Darstellung eines XPS-Dokuments lässt sich nichts ändern, so dass dem Steuerelement einzig und allein die Aufgabe zukommt, Einfluss auf die Darstellungsform zu nehmen und eine Navigation bereitzustellen.
Im XAML-Code brauchen Sie nur das Element DocumentViewer zu definieren. Da im Code später darauf zugegriffen wird, ist die Angabe der Eigenschaft Name erforderlich.
// Beispiel: ..\Kapitel 21\DocumentViewer
<Window ...>
<Grid>
<DocumentViewer Name="myDocViewer" />
</Grid>
</Window>
Listing 21.70 Das Beispielprogramm »DocumentViewer«
Das Laden der XPS-Datei erfolgt im Ereignis Loaded des Window-Objekts. Diesem Beispielprogramm habe ich einen Teil von Kapitel 3 als XPS-Dokument zu Demonstrationszwecken hinzugefügt. Um ein XPS-Dokument zu laden, benötigen Sie die Klasse XpsDocument. Diese befindet sich im Namespace System.Windows.Xps.Packaging der Bibliothek ReachFramework.dll. Letztere müssen Sie unter Verweise einbinden.
private void Window_Loaded(object sender, RoutedEventArgs e) {
XpsDocument xpsDoc = new XpsDocument(@"..\..\Kapitel 3.xps", FileAccess.Read);
myDocViewer.Document = xpsDoc.GetFixedDocumentSequence();
xpsDoc.Close();
}
Listing 21.71 Programmcode des Beispielprogramms »DocumentViewer«
Wie schon von den anderen Viewern her bekannt, hat auch das Element DocumentViewer eine Document-Eigenschaft, der Sie die Referenz auf das XPS-Dokument übergeben. Mit der Methode GetFixedDocumentSequence werden die XPS-Daten im erforderlichen Format bereitgestellt.
Das DocumentViewer-Element stellt standardmäßig Schaltflächen zur Verfügung, um die dargestellte Größe zu ändern oder um im Text nach Begriffen zu suchen. Sogar das Drucken des Dokuments ist möglich. Eine individuelle Gestaltung des Viewers ist praktisch nicht möglich.
Abbildung 21.44 Das Element »DocumentViewer«
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.