Starting from Windows Vista, Microsoft introduced a
new file format known as XPS that is a portable file format for
documents and is useful because you can share documents without the of
having installed the application that generated that kind of document
because you simply need a viewer. WPF offers full support for XPS
documents, also offering a DocumentViewer
control that enables developers to embed XPS viewing functionalities in
their applications. Support for XPS documents is provided by the ReachFramework.dll assembly (so you need to add a reference) that exposes the System.Windows.Xps.Packaging namespace. For code, you simply drag the DocumentViewer control from the toolbox onto the Window surface so that the generated XAML looks like the following:
<DocumentViewer Name="DocumentViewer1" />
At design time you can notice
how such control offers a number of buttons for adjusting the document
layout, for zooming and printing. XPS documents are fixed documents
differently from flow documents, so you need to create an instance of
the XpsDocument class and get a fixed sequence of sheets to be assigned to the Document property of the viewer, as demonstrated in the following code snippet that enables loading and presenting an XPS document:
Dim documentName As String = "C:\MyDoc.xps"
Dim xpsDoc As XpsDocument
xpsDoc = New XpsDocument(documentName, IO.FileAccess.ReadWrite)
DocumentViewer1.Document = xpsDoc.GetFixedDocumentSequence
Figure 1 shows a sample XPS document opened in the DocumentViewer control.
So with a few steps you can embed XPS functionalities in your applications.