Microsoft Office

Dissecting XPS, part 8 - XPS Tools

This part of the Dissecting XPS series will focus on some XML Paper Specification tools that are available as of today. The success of XPS, vs PDF and others, are really depending on the number of supported devices, operating systems and tools. Right now the XPS support is limitied in applications outside the Microsoft Windows sphere, but there are plans for other operating systems. (Maybe Silverlight will boost this with the CoreCLR).

Microsoft Expression

Dissecting XPS, part 7 - XPS with .NET 3.0

This part of the Dissecting XPS series will introduce the XPS parts of the Microsoft.NET 3.0 framework and where you should look to get started creating XML Paper Specification documents. Windows Presentation Foundation, WPF The XPS classes is a part of the Windows Presentation Foundation, WPF, and is found under the System.Windows.Xps namespace. The Open Packaging Convention classes, used to manipulate the packages is found under the System.IO.Packaging namespace. To get you started with creating XPS documents with the .NET 3.0 Framework you should read the January 2006 article in the MSDN Magazine by Bob Watson which explains it all. It contains everything you need to know from reading to writing to signing XPS documents.

.NET

Dissecting XPS, part 6 - reading XPS files programatically

The sixth part of the Dissecting XPS series is here and this time we will, finally, look at some code for reading XML Paper Specification [1], XPS, files. I will in the following sample not use the Microsoft.NET 3.0 Framework, which has built-in functionality for reading and writing XPS files [2]. Instead I will do it using .NET 2.0 (you can try it in .NET 1.1 if you like) and an excellent ZIP library called #ziplib [3]. This will show you more of what’s really happening and it will show you how to integrate XPS into applications built using other .NET Frameworks than 3.0 or in Mono or in what ever you like. For instance, you can use Java and the Java Zip packages.

XML

Dissecting XPS, part 5 - Document properties

This is the fith part of the Dissecting XPS series and will focus on the Xml Paper Specification, XPS, document properties. Core Properties The properties used in an XPS document are stored in the Core Properties Part, specified in the Open Packaging Conventions, OPC [1]. The Part is located by reading the [Content_Types].xml file and finding the content type application/vnd.openxmlformats-package.core-properties+xml. A document should have one Core Properties part, so there is no requirement to have one but having serveral indicates an invalid package. But there should be no reason to leave out the part. There are also no requirements on which elements that should be present in the part.

XML

Dissecting XPS, part 4 - the content markup

This part in the Dissecting XPS series will take off were we ended part 3, by looking into how the actual content is marked up. The content is contained in the FixedPage element and it is marked up by three different elements the Path element which specified a geometry filled with a brush the Glyphs element which represents text the Canvas element which groups elements together The Path element The Path element is used to specify a geometry shape and optionally fill it using a brush. This XPS markup code creates the triangle shown on the right.

XPS

Dissecting XPS - part 3 - the Fixed Document

This is the third part in the Dissecting XPS Series and this episode will focus on the Fixed Document parts of an XPS document. The previous part described how an XPS document is packed into a package and how we could find the actual document within it. FixedDocument and PageContent The FixedDocument element [1] is the part of the XPS document which contains the actual pages, which are represented as PageContent elements. The PageContent elements appears in the exact same order in which they should appear in the document and contains a reference to the FixedPage Part and optionally size (width and height) of the page.

XML

Dissecting XPS, part 2 - inside the XPS document

This is the second part of the Dissecting XPS series, last post generally described the XML Paper Specification. This post in the series will describe the XPS file format internals. This will give you an overview of how the XPS files are built from ground and up, instead of reading the XPS Specification which covers 453 pages. The XPS file The XPS file, with the .xps extension, is a ZIP file - called the physical Package, and consists of a number of XML and binary files - called Parts. There are also files describing how the files are organized and connected together - called Relationships. 

Microsoft

Dissecting XPS, part 1 - The basics

I will in a number of posts try to explain the XML Paper Specification document format, XPS format, that has been developed by Microsoft. I think the XPS initiative is nice from a developer and ISV perspective, since creating and reading XPS documents is easy and supported from various environments. This series of XPS articles will start off with an introduction to the XML Paper Specification and then continue with general support and competitors and then of course some nice introduction on how to use XPS in applications.