The XML Paper Specification (XPS), formerly codenamed "Metro", is a specification for a page description language and a fixed-document format developed by Microsoft. It is an XML-based (more precisely XAML-based) specification, based on a new print path and a color-managed vector-based document format which supports device independence and resolution independence.
Intended as the replacement for the Enhanced Metafile (EMF) format which was the previously used print spooler format in the GDI print path , the XPS document format is the same as the spooler format used in the XPS print path. It serves as the page description language (PDL) for printers. For printers supporting XPS, this eliminates an intermediate conversion to a printer-specific language, increasing the reliability and fidelity of the printed output.
The document format consists of structured XML markup that defines the layout of a document and the visual appearance of each page, along with rendering rules for distributing, archiving, rendering, processing and printing the documents. Notably, the markup language for XPS is a subset of XAML, allowing it to incorporate vector-graphic elements in documents, using XAML to mark up the WPF primitives. The elements used are described in terms of paths and other geometrical primitives.
An XPS file is in fact a ZIP archive using the Open Packaging Convention, which contains the files which make up the document. These include an XML markup file for each page, text, embedded fonts, raster images, 2D vector graphics, as well as the digital rights management information. The contents of an XPS file can be examined simply by renaming it as a ZIP file and then opening it in an application which supports ZIP files.
As the document format is the same as the spooler format in the XPS print path, XPS encapsulates an exact representation of the printed output. It has support for advanced printing features such as gradients, transparencies, CMYK color spaces, printer calibration, multiple-ink systems and print schemas. XPS supports the Windows Color System color management technology for better color conversion precision across devices and higher dynamic range. It also includes a software raster image processor (RIP) which is downloadable separately. The print subsystem also has support for named colors, simplifying color definition for images transmitted to printers supporting those colors.
XPS also supports HD Photo images natively for raster images. The XPS print path can automatically calibrate color profile settings with those being used by the display subsystem. Conversely, XPS print drivers can express the configurable capabilities of the printer, by virtue of the XPS PrintCapabilities class, to enable more fine-grained control of print settings, tuned to the individual printing device.
Applications which use the Windows Presentation Foundation for the display elements can directly print to the XPS print path without the need for image or colorspace conversion. The XPS format used in the spool file represents advanced graphics effects such as 3D images, glow effects, and gradients as Windows Presentation Foundation primitives, which are processed by the printer drivers without rasterization, preventing rendering artifacts and reducing computational load. When the legacy GDI Print Path is used, the XPS spool file is used for processing before it is converted to a GDI image to minimize the processing done at raster level.
Similarities with PDF
Like Adobe's PDF format, XPS is a fixed-layout document format designed to preserve document fidelity, so that documents look the same and as they are intended on any device. PDF is based on PostScript whereas XPS is based on XML. XPS is also the spool file format for printers, like PostScript is. Owing to such similarities, XPS is viewed as a potential competitor to PDF. However, PDF includes dynamic capabilities not supported by the XPS format.
Microsoft has submitted the XPS specification to the ISO.
Viewing and creating XPS documents
Because the printing architecture of Windows Vista uses XPS as the spooler format , it has native support for generating and reading XPS documents. XPS documents can be created by printing to the virtual XPS printer driver. The XPS Viewer is installed by default in Windows Vista. The viewer is hosted within Internet Explorer 7. This Internet Explorer-hosted viewer is also available to Windows XP users when they download the .NET Framework 3.0. For users who do not wish to view XPS documents in the browser, they can download the XPS Essentials Pack which includes a standalone viewer. The XPS Essentials Pack is available for both, Windows XP as well as Windows Vista.
Third party support
XPS has the support of printing companies such as Sharp, Canon, Epson, Hewlett-Packard and Xerox and software and hardware companies such as Software Imaging, Pagemark Technology Inc., Informative Graphics Corp. (IGC), NiXPS NV, Zoran and Global Graphics.
Microsoft has indicated that devices aiming at Certified for Windows Vista level of Windows Logo conformance certificate will be required to have XPS drivers for printing by June 1, 2007.
- NiXPS is a commercial application for viewing and printing XPS files on Mac OS X and Windows.
- Outside Software Inc offer a .NET library for developers called ExpertXPS that can generate XPS files on the fly.
In order to encourage wide use of the format, Microsoft has released XPS under a royalty-free patent license, allowing users to create implementations of the specification that read, write and render XPS files as long as you include a notice within the source that technologies implemented may be encumbered by patents held by Microsoft. Microsoft also requires that organizations "engaged in the business of developing (i) scanners that output XPS Documents; (ii) printers that consume XPS Documents to produce hard-copy output; or (iii) print driver or raster image software products or components thereof that convert XPS Documents for the purpose of producing hard-copy output, you covenant that you and your affiliates will not sue Microsoft or any of its licensees under the XML Paper Specification or customers for infringement of any XML Paper Specification Derived Patents (as defined below) on account of any manufacture, use, sale, offer for sale, importation or other disposition or promotion of any XML Paper Specification implementations." The specification itself is released under a royalty-free copyright license, allowing its free distribution.