Open XML Paper Specification
View on Wikipedia
| Open XML Paper Specification (OpenXPS) | |
|---|---|
| Filename extension |
.oxps,[1] .xps |
| Internet media type |
application/oxps, application/vnd.ms-xpsdocument |
| Developed by | Microsoft, Ecma International |
| Initial release | October 2006 |
| Latest release | First Edition June 16, 2009 |
| Type of format | Page description language, document file format |
| Contained by | Open Packaging Conventions |
| Extended from | ZIP, XML, XAML |
| Standard | ECMA-388 |
| Website | ecma-international |
Open XML Paper Specification (also referred to as OpenXPS) is an open specification for a page description language and a fixed-document format. Microsoft developed it as the XML Paper Specification (XPS). In June 2009, Ecma International adopted it as international standard ECMA-388.[2]
It is an XML-based (more precisely XAML-based) specification, based on a new print path (print processing data representation and data flow) and a color-managed vector document format that supports device independence and resolution independence. In Windows 8 .xps was replaced with the ECMA standard .oxps format which is not natively supported in older Windows versions.[1]
OpenXPS was introduced by Microsoft as an alternative to Portable Document Format (PDF). However, PDF remained the standard choice, and support for and user familiarity with XPS files is limited. It has been described as neglected technology, which may cause difficulties to recipients of documents in a format they are not familiar with.[3]
Format
[edit]The XPS 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 elements in documents.
An XPS file is a ZIP archive using the Open Packaging Conventions, containing 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 by opening it in an application which supports ZIP files.
There are two incompatible XPS formats available. The original document writer printed to .xps in Windows 7 and Windows Vista. Beginning with Windows 8, the document writer defaults to the .oxps format.[1]
Microsoft provides two free converters. XpsConverter converts documents between .xps and .oxps format,[4] while OxpsConverter converts documents from .oxps to .xps format.[5]
Features
[edit]XPS specifies a set of document layout functionality for paged, printable documents.[6] It also has support for features such as color gradients, transparencies, CMYK color spaces, printer calibration, multiple-ink systems and print schemas.[7] XPS supports the Windows Color System color management technology for color conversion precision across devices and higher dynamic range. It includes a software raster image processor (RIP) (downloadable separately).[8] The print subsystem supports named colors, simplifying color definition for images transmitted to printers supporting those colors.
XPS supports HD Photo images natively for raster images.[9] 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 printer drivers could offload their rasterization to the printer in order to reduce computational load if the printer is capable of rasterizing those primitives.[10]
Comparison with PDF
[edit]Like PDF, XPS is a page description language using fixed-layout document format designed to preserve document fidelity,[11] providing device-independent document appearance. PDF uses Carousel Object Syntax (COS syntax) to form a random access database of objects that may be created from PostScript or generated directly from applications, whereas XPS is based on XML.[12] Both formats are compressed, albeit using different methods. The filter pipeline architecture of XPS is also similar to the one used in printers supporting the PostScript page description language. PDF includes dynamic capabilities purposely not supported by the XPS format.[13][failed verification] There are many resources for converting from XPS to PDF and some for converting from PDF to XPS. A method often suggested is to open an XPS file in a program with printing capability, and then "print" to a virtual PDF printer such as Microsoft Print to PDF,[14] with a similar procedure to convert from PDF to XPS.
| File format | OpenXPS | |
|---|---|---|
| Original author | Microsoft | Adobe Systems |
| Standardized by | Ecma International[15] | ISO |
| First public release date | 2006[16] | 1993[17] |
| Latest stable version | Ecma International Standard ECMA-388 — Open XML Paper Specification — 1st Edition | ISO 32000-2:2020 — Document management — Portable document format — Part 2: PDF 2.0 |
| Latest standardised version | Ecma International Standard ECMA-388 — Open XML Paper Specification — 1st Edition | ISO 32000-2:2020 — Document management — Portable document format — Part 2: PDF 2.0 |
| Language type | Markup language (XML)[18][19] | PDF is a random access binary file format comprising a database of objects that may be created from PostScript or generated directly by an application. |
| XML schema representation | XML Schema (W3C) (XSD) and RELAX NG (ISO/IEC 19757-2)[2] | N/A |
| Compression format | Container: ZIP[18][19][20] (Although flate(should be Deflate) is mentioned in third-party document, no specific compression method is mandated for the container.)[21] Payload: JPEG, PNG, TIFF, JPEG XR are compressed based on their file types.[22] |
LZW for both text and images; JPEG, JPEG 2000, JBIG2, CCITT Group 4 compression, and RLE for images[23] |
| Container structure | Open Packaging Conventions (ISO/IEC 29500-2:2008)[18][19] | |
| 3D graphics content | X3D (ISO/IEC 19775/19776)[2] | U3D (Standard ECMA-363),[24][25] PRC (Product Representation Compact, ISO 14739-1:2014),[26] STEP AP 242 (ISO 10303-242),[27] glTF[28] |
| Full file content compression | Yes[26] | Compression of collections of objects[29] |
| Fast page by page download from web servers | Yes[26] | Yes[26] |
| Multiple documents in one file | Yes[26] | Yes[30] |
| Document bookmarks and outline | Yes[26][31] | Yes[26][32] |
| Reflowable | No[33] | With PDF tagging[34] |
| Hyperlinks | Yes[26][35][36] | Yes[26][32] |
| Page thumbnails | Yes[26][35] | Yes[26][37] |
| Annotations | Yes[35] | Yes[26][32] |
| Image transparencies | Yes[26] | Yes[26] |
| Gradient fills | Yes[26][36] | Yes[26] |
| Alpha channel in color definitions | Yes[26] | Yes[26] |
| Support for multiple transparency blending modes | ? | Yes[29] |
| Change tracking | No[26] | No[26] |
| Password protection | Yes[26] | Yes[26][32] |
| Digital signatures | Yes[19][20][26][35] | Yes[32][38] |
| JPEG (RGB and CMYK) (ISO/IEC 10918-1) | Yes[20][26] | Yes[38] |
| JPEG 2000 (ISO/IEC 15444-1) | No[26] | Yes[38] |
| JBIG2 for bi-level images | No[26] | Yes[29] |
| PNG | Yes[26] | Yes[26] |
| TIFF (RGB and CMYK) | Yes[26] | No[26] |
| JPEG XR (ISO/IEC 29199-2:2009) | Yes[18] | No[26] |
| Gray support | Yes[26] | Yes[26] |
| RGB support | Yes[26] | Yes[26] |
| CMYK support | Yes[26] | Yes[26] |
| Spot color support | Yes[26] | Yes[26] |
| Filename extensions | oxps[2] | pdf[39] |
| Internet media types | application/oxps[2] | application/pdf[40] |
| Standard licensing | Non-free content, downloaded free-of-charge from Ecma |
|
| File format | OpenXPS |
Viewing and creating XPS documents
[edit]Windows Vista and later supports both creating and viewing XPS.[42] In addition, the printing architecture of Windows Vista uses XPS as the spooler format.[11]
Apps can create XPS documents by printing to XPS Document Writer, a virtual printer that comes bundled with Windows. These files open in XPS Viewer, an optional component that comes with Windows Vista and later. In Windows Vista, XPS is hosted within Internet Explorer, but in subsequent versions, it is a standalone app. Both versions support digital rights management and digital signatures. Windows 8 also comes with an app called "Reader", which reads XPS and PDF files.[43][failed verification]
The .NET Framework 3.0 installer for Windows XP also adds the IE-hosted XPS Viewer, as well as XPS Document Writer. Since then, Microsoft released the XPS Essentials Pack for Windows XP, Server 2003, and Vista,[43][44] which includes the standalone viewer, an IFilter plug-in that helps Windows Desktop Search index the contents of XPS files, and another plug-in for Windows Explorer to help generate thumbnails for XPS files.[43] Installing this pack enables operating systems prior to Windows Vista to use the XPS print spooler[45] instead of the older GDI-based spooler.[46] The XPS print spooler can produce better quality prints for printers that directly consume the XPS format.[47]
Third-party software
[edit]| Name | Platform | Function |
|---|---|---|
| Evince | Linux | A document viewer for multiple document format; can display XPS documents thanks to libgxps.[48] |
| MuPDF | Linux, Windows, Android, iOS | A lightweight PDF, XPS and OpenXPS viewer; licensed under the terms of AGPL v3 |
| Harlequin RIP | Windows, Mac OS, Linux, ThreadX | Renders XPS files for print or display; used in desktop printers, digital production presses, prepress and software[49] |
| Okular | Linux, FreeBSD, Windows, Solaris | The document viewer of the KDE project; can display XPS documents[50] |
| STDU Viewer | Microsoft Windows | Can display XPS documents as well as other electronic document formats. Other STDU applications may handle organizing/browsing, conversion, and extraction.[51] |
| Sumatra PDF | Windows | Can display XPS documents, among other formats, since version 1.5, thanks to MuPDF[52] |
| Xara Designer Pro | Windows | Vector graphics app with XPS support |
| XPS Annotator | Windows | Standalone XPS viewer which can digitally sign and annotate XPS documents, and convert XPS documents to common picture formats.[53] |
| XPS Viewer | Windows | Free app from Software Imaging Ltd. for viewing XPS files[54] |
Hardware
[edit]XPS had the support of printing companies such as Konica Minolta, Sharp,[55] Canon, Epson, Hewlett-Packard,[56] and Xerox[57] and software and hardware companies such as CSR (formerly Zoran),[58] and Global Graphics.[59] Native XPS printers were introduced by Canon, Konica Minolta, Toshiba, and Xerox.[60] Devices at the Certified for Windows level of Windows Logo conformance certification were required to have XPS drivers for printing since 1 June 2007.[61]
Licensing
[edit]Microsoft released XPS under a royalty-free patent license called the Community Promise for XPS,[62][63] allowing users to create implementations of the specification that read, write and render XPS files as long as they included a notice within the source that technologies implemented may be encumbered by patents held by Microsoft. Microsoft also required 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, [...] 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 was released under a royalty-free copyright license, allowing its free distribution.[64]
On September 13, 2011, Monotype Imaging announced it had licensed its XPS-to-PCL 6 and XPS-to-PostScript vector conversion filters to Microsoft for use in the next version of Windows.[65][66]
History and standardization
[edit]In 2003, Global Graphics was chosen by Microsoft to provide consultancy and proof of concept development services on XPS and worked with the Windows development teams on the specification and reference architecture for the new format.[67] Microsoft submitted the XPS specification to Ecma International.[68] In June 2007 Ecma International Technical Committee 46 (TC46) was set up to develop a standard based on the Open XML Paper Specification (OpenXPS).[69]
At the 97th General Assembly held in Budapest, June 16, 2009, Ecma International approved Open XML Paper Specification (OpenXPS) as an Ecma standard (ECMA-388).[70] TC46's members included:
Malware vulnerability
[edit]This section needs expansion. You can help by adding to it. (October 2024) |
See also
[edit]References
[edit]- ^ a b c Prince, Mitch. "XPS and OXPS file support in Windows 7 and Windows 8". Mitch Prince's Blog. Microsoft. Archived from the original on January 29, 2013. Retrieved December 3, 2012.
- ^ a b c d e Standard ECMA-388: Open XML Paper Specification (OpenXPS®) (PDF) (1st ed.). Ecma International. June 2009.
- ^ Hoffman, Chris (July 5, 2017). "What Is an XPS File and Why Does Windows Want Me to Print to One?". How-To Geek.
- ^ "XpsConverter". Microsoft Learn. December 15, 2021.
- ^ "You cannot open an .oxps file in Windows 7 or in Windows Server 2008 R2". Microsoft Support. Retrieved November 4, 2022.
- ^ "[MS-RDPEXPS]: XPS Basics". Learn Microsoft. Retrieved June 25, 2025.
- ^ "Print Schema - Win32 apps". Learn Microsoft. Retrieved June 25, 2025.
- ^ "Reference Raster Image Processor (RIP)". Microsoft Learn. January 9, 2007. Retrieved November 4, 2022.
- ^ "HD Photo". Windows Live Photo & Video Blog. Microsoft. March 12, 2007. Archived from the original on July 13, 2012.
- ^ "Microsoft XML Paper Specification, (XPS)". loc.gov. February 20, 2020. Retrieved June 25, 2025.
- ^ a b Foley, Mary Jo (April 25, 2005). "Microsoft Readies New Document Printing Specification". Microsoft Watch. Seattle: Ziff Davis. Archived from the original on January 28, 2013. Retrieved December 10, 2009.
- ^ "Glossary of PDF terms". PDF Association. Archived from the original on June 25, 2025. Retrieved June 25, 2025.
- ^ "Comparison of PDF, XPS and ODF by an ISV providing PDF solutions". Amyuni. Retrieved December 10, 2009.
- ^ "Easy steps for converting XPS files to PDF". Adobe. n.d. Archived from the original on July 14, 2022. Retrieved January 6, 2022.
- ^ Nias, Simon (August 2, 2007). "XPS format passes first standardisation test". PrintWeek. Haymarket Media. Archived from the original on June 30, 2012. Retrieved July 11, 2009.
- ^ "XML Paper Specification". Microsoft. October 24, 2006. Archived from the original on August 25, 2009. Retrieved July 11, 2009.
- ^ Beal, Vangie (May 24, 2021) [first published July 1, 2005]. "All About Adobe PDF". Webopedia. TechnologyAdvice.
- ^ a b c d "XPS FAQ" (PDF). Global Graphics Software Limited. January 2008. Archived from the original (PDF) on July 5, 2010. Retrieved July 6, 2009.
- ^ a b c d "XML Paper Specification (XPS)". VeryDOC.com.
- ^ a b c "ZDNet Definition for: XML Paper Specification". ZDNet. CNET. Archived from the original on March 24, 2008.
- ^ ECMA-388 1st Edition / June 2009, 8.2 Package
- ^ ECMA-388 1st Edition / June 2009, 9.1.5 Image Parts
- ^ "PDF Reference" (PDF) (6th ed.). Adobe. November 2006. p. 39. Archived from the original (PDF) on June 24, 2008.
- ^ "Acrobat 3D Developer Center". Adobe. Archived from the original on June 30, 2012.
- ^ Ferris, Sara (February 2005). "U3D format debuts in Acrobat 7". CADalyst. Archived from the original on June 23, 2006 – via FindArticles.
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am Amiouny, Dany. "PDF or XPS: Choose the Right Document Format for your Applications" (PDF). Amyuni. Archived (PDF) from the original on April 12, 2022.
- ^ "ISO/TS 24064:2023 Document management — Portable document format — RichMedia annotations conforming to the ISO 10303-242 (STEP AP 242) specification". ISO. Retrieved September 9, 2024.
- ^ "ISO/TS 32007:2024 Document management — Portable Document Format — RichMedia annotations conforming to glTF assets". ISO. Retrieved September 9, 2024.
- ^ a b c ISO 32000-1:2008 Document management – Portable document format – Part 1: PDF 1.7. July 2008.
- ^ https://admin.adobe.acrobat.com/_a295153/p81291074/[permanent dead link] A9 PDF Binders][permanent dead link]
- ^ Fluckinger, Don (June 1, 2006). "Look Out, Acrobat: Microsoft XPS is on Your Tail". PDFzone. Ziff Davis. Archived from the original on January 31, 2013. Retrieved July 15, 2009.
- ^ a b c d e Thomas, Kas (1999). "Portable Document Format: An Introduction for Programmers". MacTech. 15 (9). Xplain.
- ^ Sklar, David F.; van Dam, Andy (November 5, 2010) [first published September 2005]. "An Introduction to Windows Presentation Foundation". Microsoft Learn.
- ^ Rutter, Richard; Lauke, Patrick H.; Waddell, Cynthia; et al. (March 19, 2007). Web Accessibility: Web Standards and Regulatory Compliance. Apress. p. 379. ISBN 978-1-59059-638-8. Retrieved November 4, 2022.
The Reflow feature depends on tags in order to redraw the PDF page to fit the existing window width, but reflows content withon only a single page at a time.
- ^ a b c d "XPS Annotator". XPSDev.com. Archived from the original on January 31, 2010. Retrieved January 28, 2012.
- ^ a b Keizer, Gregg (October 28, 2005). "Microsoft Adds XPS In Office 12 To Fight Adobe". InformationWeek. TechWeb News. Archived from the original on October 5, 2009. Retrieved December 21, 2020.
- ^ Brailsford, David F. (May 1994). "Adobe's Acrobat – providing the missing link?" (PDF). University of Nottingham. Archived from the original (PDF) on February 17, 2012. Retrieved December 21, 2020.
- ^ a b c Blonce, Aexandre; Filiol, Eric; Frayssignes, Laurent. "Portable Document Format (PDF) Security Analysis and Malware Threats" (PDF).
- ^ "explaining PostScript". Applied Mathematics. University of Colorado. Archived from the original on March 1, 2009. Retrieved July 11, 2009.
- ^ Hardy, M.; Masinter, L.; Markovic, D.; Adobe Systems Incorporated; Johnson, D.; PDF Association; Bailey, M.; Global Graphics (March 2017). The application/pdf Media Type. IETF. doi:10.17487/RFC8118. ISSN 2070-1721. RFC 8118.
- ^ "Sponsored ISO standards for PDF technology – PDF Association". Retrieved September 9, 2024.
- ^ "XPS Documents". Microsoft Windows. Archived from the original on January 11, 2010. Retrieved December 10, 2009.
- ^ a b c "View and Generate XPS". Microsoft. Archived from the original on December 14, 2009. Retrieved February 14, 2020.
- ^ "Microsoft XML Paper Specification Essentials Pack". Microsoft. November 4, 2008. Archived from the original on February 3, 2009.
- ^ "Microsoft XML Paper Specification Essentials Pack". Microsoft Download Center. February 12, 2010. Archived from the original on July 26, 2011.
- ^ "XPS and Color Printing Enhancements in Windows Vista". Microsoft Windows. December 17, 2007. Archived from the original on June 16, 2011.
- ^ "XPSDrv Filter Pipeline: Implementation and Best Practices". Microsoft. February 7, 2008. Archived from the original (DOCX) on April 29, 2012.
- ^ "Apps/Evince". GNOME Wiki. Retrieved November 4, 2022.
- ^ "Native Interpretation in the Harlequin RIP" (PDF). Global Graphics Software. October 2021. Retrieved November 4, 2022.
- ^ "Okular Document Format Handlers Status". Okular. Retrieved November 4, 2022.
- ^ "Scientific and technical documentation utility products features". June 22, 2017.
- ^ "News about Sumatra PDF reader". January 6, 2012. Archived from the original on April 6, 2012. Retrieved January 6, 2012.
- ^ "XPS Annotator". January 28, 2012. Archived from the original on January 31, 2010. Retrieved January 28, 2012.
- ^ XPS viewer
- ^ "Sharp Open Systems Architecture supports XPS in multi-function printers". Sharpusa.com. Retrieved December 10, 2009.
- ^ Monckton, Paul. "IT Week 10 November 2006, Canon, Epson and HP support for XPS". Itweek.co.uk. Archived from the original on April 6, 2008. Retrieved December 10, 2009.
- ^ "Fuji Xerox and Microsoft Collaborate in Document Management Solutions Field". Fujixerox.co.jp. November 28, 2006. Archived from the original on August 6, 2009. Retrieved December 10, 2009.
- ^ "Ips Xps". Zoran.com. Retrieved December 10, 2009.
- ^ "Solutions for XPS document sharing and native XPS printing". Globalgraphics.com. Archived from the original on March 12, 2006. Retrieved December 10, 2009.
- ^ "XPS Technology Showcase". Microsoft.com. April 19, 2007. Retrieved December 10, 2009.
- ^ "Windows Logo Program Requirements and Policies". Microsoft.com. Retrieved December 10, 2009.
- ^ "Community Promise for XPS". Microsoft. January 31, 2007. Archived from the original on April 10, 2014. Retrieved February 14, 2020.
- ^ "Community Promise for XPS FAQs". Microsoft.com. January 31, 2007. Archived from the original on September 19, 2009. Retrieved December 10, 2009.
- ^ "XML Paper Specification Licensing". Microsoft. September 2, 2005. Archived from the original on November 23, 2006. Retrieved February 14, 2020.
- ^ "Monotype Imaging Licenses XPS Printer Driver Solution to Microsoft". ir.monotypeimaging.com. Archived from the original on December 11, 2011. Retrieved June 25, 2025.
- ^ "Monotype Imaging Licenses XPS Printer Driver Solution to Microsoft".[permanent dead link]
- ^ "Global Graphics XPS reference". Redorbit.com. September 21, 2006. Archived from the original on November 25, 2011. Retrieved December 10, 2009.
- ^ Reimer, Jeremy (July 1, 2007). "War and PDF: Microsoft submits XPS to standards body". Arstechnica.com. Retrieved December 10, 2009.
- ^ "TC46 - XML Paper Specification (XPS)". Ecma-international.org. Archived from the original on January 29, 2009. Retrieved December 10, 2009.
- ^ Steve McGibbon (Microsoft) (June 17, 2009). "OpenXPS - OpenXML Paper Specification". Archived from the original on April 23, 2012.
- ^ "CVE-2022-42397 detail". National Vulnerability Database. NIST. January 27, 2023.
- ^ "Analysis of CVE-2020-0605 – Code Execution using XPS Files in .NET". MDSec. May 10, 2020. Retrieved October 3, 2023.
External links
[edit]- XML Paper Specification Version 1.0 (via Internet Archive; from 2006-11-17)
- Microsoft XPS Development Team Blog
- Standard ECMA-388 Open XML Paper Specification
- View and Generate XPS Documents (via Internet Archive; from 2006-12-05)
- View and Generate XPS Documents (via Internet Archive; from 2009-12-14)
- ECMA-388 Open XML Paper Specification
- ISO 32000-1:2008 Document management — Portable document format — Part 1: PDF 1.7
- ISO 32000-2:2020 Document management — Portable document format — Part 2: PDF 2.0
- XPS2PDF.co.uk - free XPS to PDF converter - Converts .xps and .oxps files to PDF or JPG without installing software
Open XML Paper Specification
View on GrokipediaFormat and Structure
Document Composition
The Open XML Paper Specification (OpenXPS) defines a fixed-document format as a ZIP-compressed package that conforms to the Open Packaging Conventions (OPC), which provide a standardized model for organizing content into discrete parts and relationships within a ZIP archive.[6] This structure supports a parts-based document model, where the payload is fixed and hierarchical, consisting of at least one root FixedDocumentSequence part, one or more FixedDocument parts, and one or more FixedPage parts per document, ensuring a paginated layout that cannot be reflowed.[6] At the core of an OpenXPS document's composition are key XML files that define its logical organization. The FixedDocumentSequence.xml file serves as the root part, using<DocumentReference> elements to sequence and reference multiple FixedDocument parts, establishing the overall document structure and print ticket associations.[6] Each FixedDocument.xml file, in turn, indexes the pages within a single document via <PageContent> elements that link to individual FixedPage parts, including their order and any applicable print tickets.[6] The content of each page is described in a Page.xml file, which employs Extensible Application Markup Language (XAML) to mark up visual elements such as paths, glyphs, and canvases, enabling precise rendering of the fixed layout.[6]
Resource parts, including images, fonts, and thumbnails, are stored separately within the package to promote modularity and reuse, linked through relationship files (RELS) that define required or optional dependencies.[6] Images in formats like JPEG, PNG, TIFF, or JPEG XR are encapsulated as individual parts and referenced via Required Resource relationships in the RELS files of the consuming FixedPage or FixedDocument.[6] Fonts, typically in OpenType format, are similarly stored and linked to ensure consistent typography across the document, while thumbnails provide preview representations tied through relationships for quick navigation.[6] These relationships adhere to OPC standards, using XML to specify URIs and types, such as http://schemas.openxps.org/2009/relationships/image for image parts.[6]
OpenXPS incorporates Markup Compatibility and Extensibility (MCE) mechanisms to enable XML extensibility while maintaining backward compatibility, drawing from standards in the Office Open XML (OOXML) specification.[6] MCE allows for versioning through namespace prefixes (e.g., mc: for markup compatibility attributes like mc:Ignorable), enabling processors to ignore or process unknown elements and attributes during validation, which supports third-party extensions without breaking core schema conformance.[6] In the XAML-based Page.xml files, vectors are represented using <Path> elements with a Data attribute defining geometries via <PathGeometry>, <PathFigure>, and segments like <PolyLineSegment> or <ArcSegment>, complete with attributes such as FillRule and IsClosed for rendering control.[6] Text is encoded through <Glyphs> elements, specifying UnicodeString for character data, FontUri for font references, and Indices for glyph positioning and bidi support, ensuring device-independent layout.[6] Paths, as subsets of vectors, are constructed within <PathFigure> using segment types like <PolyBezierSegment>, integrated with transformations and styling attributes like Stroke and Fill for precise graphical composition.[6]
File Extensions and Packaging
Open XML Paper Specification documents are packaged using the Open Packaging Conventions (OPC), a ZIP-based container format that organizes XML markup, resources, and relationships into a single file. The original Microsoft implementation uses the .xps file extension, while the standardized OpenXPS format employs .oxps to distinguish it as compliant with ECMA-388, which enforces stricter adherence to OPC requirements such as standardized namespace URIs and the exclusion of platform-specific features like Windows color management extensions. Both formats encapsulate all necessary components—including fixed XML pages, embedded fonts, and images—within the ZIP structure, ensuring self-contained documents suitable for archival and distribution.[6] The MIME type for .xps files is application/vnd.ms-xpsdocument, registered by Microsoft for its proprietary XML Paper Specification documents. In contrast, .oxps files use the MIME type application/oxps, as defined for the ECMA-388 OpenXPS standard to promote interoperability across systems. Packages can be identified by extracting the ZIP archive and verifying the presence of core OPC files, such as [Content_Types].xml at the root (specifying content types like application/vnd.ms-package.xps-fixeddocument for pages) and the _rels/.rels relationship file, which outlines the document's internal structure. Compression within both .xps and .oxps packages relies on the DEFLATE algorithm, as specified in the ZIP File Format Version 6.2.0, to reduce file size while preserving XML readability and binary integrity. Text-based XML parts, such as page descriptions and metadata, are compressed efficiently, whereas binary resources like JPEG or PNG images are stored as separate entries with their native encoding to avoid unnecessary recompression, allowing direct extraction without loss of quality.[6] Conversion between .xps and .oxps is facilitated by Microsoft's XpsConverter tool, a command-line utility included in the Windows Driver Kit, which transforms documents while adjusting for standard compliance, such as updating namespaces and removing non-standard elements. The tool supports single-file or recursive folder conversions; for example, the commandXpsConverter /OpenXPS /InputFile=input.xps /OutputFile=output.oxps generates an ECMA-388-compliant .oxps file from a .xps input, with optional logging to track modifications. This process ensures backward compatibility for legacy .xps files in environments requiring OpenXPS adherence.[5]
Features
Graphics and Layout Capabilities
The Open XML Paper Specification (OpenXPS) employs Extensible Application Markup Language (XAML) to define vector graphics, enabling precise representation of paths, shapes, and text elements within documents. Vector graphics are constructed using the<Path> element, which specifies geometry through attributes such as Data for path commands (e.g., move, line, curve) and supports fills and strokes via brush properties. Paths can incorporate complex geometries defined by <PathGeometry> and segments like <ArcSegment>, <PolyBezierSegment>, <PolyLineSegment>, and <PolyQuadraticBezierSegment>, allowing for scalable, resolution-independent rendering of intricate designs. Shapes are similarly rendered as paths with applied brushes, while text rendering utilizes the <Glyphs> element to embed Unicode strings, glyph indices, or bidirectional text at specified origins (OriginX and OriginY), with support for OpenType fonts to ensure typographic fidelity across platforms.[7]
OpenXPS adopts a fixed-layout model for pagination, providing exact control over document structure and element placement to maintain consistent appearance regardless of viewing device or zoom level. Each page is encapsulated in a <FixedPage> element with fixed dimensions (e.g., width and height in 1/96-inch units), ensuring precise positioning through absolute coordinates and transformations like <RenderTransform>. Multi-page documents are organized via <FixedDocumentSequence> and <FixedDocument> containers, which reference individual <PageContent> resources, facilitating the assembly of paginated sequences without reflow. This zoom-independent rendering stems from its vector-based foundation, where elements scale smoothly without pixelation, preserving layout integrity during magnification or printing.[7]
Advanced visual effects in OpenXPS enhance layout flexibility through support for gradients, transparencies, clipping, and opacity masks. Linear gradients are implemented with <LinearGradientBrush>, specifying start and end points along with <GradientStop> collections for color transitions, while radial gradients use <RadialGradientBrush> with center, radius, and gradient stops for circular or elliptical fills. Transparencies are managed via the Opacity attribute (ranging from 0 to 1) on elements like paths or glyphs, allowing layered compositions. Clipping confines content to geometric boundaries using the <Clip> property, applicable to canvases, paths, and text elements, whereas opacity masks apply brush-based alpha modulation for per-pixel transparency effects, enabling sophisticated blending in layouts.[7]
OpenXPS includes optional integration of 3D graphics through X3D extensions, permitting the embedding of three-dimensional content as image sources. This is achieved via the <Brush3D> element, which references X3D files using Source3D attributes in the ST_UriImage3D type, with fallback mechanisms like <AlternateContent> for non-supporting renderers to ensure backward compatibility in mixed 2D/3D documents.[7]
For protected content, OpenXPS incorporates digital rights management features centered on integrity verification and limited resource obfuscation rather than full encryption. Digital signatures are applied to core document parts such as <FixedDocumentSequence>, <FixedPage>, and metadata via defined signing rules, supporting multiple signatures to authenticate origins and detect tampering, with types including compliant, valid, or broken states. Embedded fonts undergo obfuscation using a 128-bit GUID and XOR encryption on initial bytes to prevent unauthorized extraction, adhering to licensing restrictions like "print and preview" or "editable embedding" that mandate such protection while prohibiting subsetting or bitmap-only installs.[7]
Imaging and Color Management
OpenXPS supports embedding raster images in several standard formats to enable high-fidelity reproduction within documents. These include JPEG, which must conform to ITU-T T.81 and supports lossy compression primarily for RGB and grayscale data, though CMYK is permitted but not recommended; PNG, adhering to the PNG specification with lossless compression and support for ancillary chunks like tRNS for transparency; TIFF, based on TIFF 6.0 with extensions for lossless LZW compression, lossy JPEG, and bilevel CCITT encoding, accommodating RGB, CMYK, grayscale, palette, and alpha data; and JPEG XR, compliant with its specification, offering both lossless and lossy compression options for RGB, scRGB, CMYK, grayscale, n-channel, and named color spaces.[7] These formats allow raster images to be referenced via the ImageBrush element, with scaling and tiling capabilities to integrate seamlessly with vector graphics.[7] Color management in OpenXPS ensures consistent color reproduction across devices by incorporating ICC profiles conforming to ICC.1:2001-04, which can be embedded in raster images (e.g., via JPEG's APP2 marker or TIFF's ICC tag 34675) or referenced as package resources for document-wide application.[7] Supported color spaces encompass sRGB as the default for unprofiled RGB data, scRGB for extended dynamic range, standard RGB, CMYK with subtractive complementation, grayscale, and n-channel extensions for multi-tone images.[7] Spot colors are handled through named color syntax in brushes and gradients or via ICC named color profiles, enabling precise specification for printing applications outside standard RGB or CMYK gamuts.[7] If no ICC profile is present, defaults like sRGB apply based on pixel format, with blending and opacity computations occurring in the specified space, typically sRGB for mandatory support.[7] Alpha channel transparency is integral to raster image handling in OpenXPS, with support for pre-multiplied or non-pre-multiplied alpha in formats like TIFF (via the ExtraSamples tag) and JPEG XR (e.g., 32bppPBGRA pixel format), while PNG utilizes the tRNS chunk for simpler transparency.[7] Alpha values, ranging from 0.0 (fully transparent) to 1.0 (fully opaque), are clamped accordingly and combined multiplicatively with element opacity attributes in ImageBrush or other visual elements.[7] Blending modes rely on alpha compositing for transparency effects, with mandatory sRGB alpha blending and optional support for scRGB or CMYK; gradients and images use the BLEND() function with interpolation modes like SRgbLinearInterpolation, and spread methods (Pad, Reflect, Repeat) influence edge blending.[7] Temporary surfaces for transparent elements initialize to alpha 0.0, ensuring accurate per-pixel compositing during rendering.[7] Font embedding in OpenXPS utilizes OpenType (ISO/IEC 14496-22:2007) and TrueType formats, including CFF-based fonts and TrueType Collections, to guarantee consistent text rendering without system dependencies.[7] Fonts are embedded as obfuscated parts (with .odttf extension) using a 128-bit GUID and XOR on the first 32 bytes for security, referenced via the Glyphs element's FontUri attribute and linked through Restricted Font relationships.[7] Subsetting is permitted to include only used glyphs, reducing file size while maintaining validity as Open Font Format files, though prohibited for fonts with "no subsetting" licensing restrictions; this optimization, combined with resource reuse across pages, minimizes redundancy and supports efficient parsing.[7]Comparisons
With PDF
The Open XML Paper Specification (OpenXPS) employs an XML-based markup language, leveraging XAML for describing page layouts and content, which allows for human-readable and structured representation of fixed documents. In contrast, PDF relies on the Content Stream syntax (COS), a PostScript-derived object-based language that enables a more compact, binary-oriented description of document elements as defined in ISO 32000-1. This fundamental difference in syntax affects parsing and editing: OpenXPS's XML structure facilitates easier programmatic manipulation and validation against schemas, while PDF's COS supports complex object relationships for advanced rendering.[8][9] A key feature gap between OpenXPS and PDF lies in text handling and interactivity. OpenXPS maintains a strictly fixed layout with no support for reflowable text, ensuring precise positioning but limiting adaptability to different screen sizes or reading modes. PDF, however, incorporates optional tagging for reflowable content, allowing text to adapt while preserving structure for accessibility. Similarly, OpenXPS does not natively support interactive forms or fields, focusing instead on static presentation; PDF includes robust capabilities for fillable forms, dynamic content via JavaScript actions, and structured tagging for screen readers under standards like PDF/UA. These omissions in OpenXPS stem from its emphasis on print fidelity over editable or responsive documents.[2][10][11] Regarding file size and compression, OpenXPS packages its components using the ZIP-based Open Packaging Conventions (OPC), which provides inherent compression and modularity for resources like images and fonts, promoting portability across systems. PDF, by comparison, often achieves smaller file sizes through highly optimized stream compression techniques, including Flate and LZW algorithms tailored to content types, resulting in more efficient storage for complex documents without sacrificing fidelity. While OpenXPS's OPC enhances interoperability in packaged formats, PDF's stream-level optimizations make it preferable for bandwidth-sensitive applications.[8][9] In terms of interoperability, OpenXPS was engineered primarily for printing and spooling workflows, integrating seamlessly with Windows print paths to deliver device-independent output with high resolution independence. PDF, however, excels in broader versatility, supporting seamless web embedding, collaborative editing in tools like Adobe Acrobat, and universal viewing across platforms via widespread reader software. This design focus positions OpenXPS as a specialized alternative for print-centric tasks, while PDF's ecosystem enables diverse uses from digital publishing to archival sharing.[12][13]With Other Page Description Languages
Open XML Paper Specification (OpenXPS) differs fundamentally from PostScript, a procedural page description language developed by Adobe Systems that operates as a stack-based programming language to instruct printers on rendering operations through sequential commands.[14] In contrast, OpenXPS employs a declarative approach, using XML markup to specify the static structure, layout, and visual elements of a document without requiring an interpreter to execute programmatic steps, thereby simplifying rendering and reducing dependency on complex processing engines.[8] This declarative model enables direct, application-independent reproduction of content, avoiding the interpretive overhead inherent in PostScript's dynamic execution model.[15] Compared to Printer Command Language (PCL), a command-oriented protocol developed by Hewlett-Packard primarily for controlling printer hardware and basic page formatting, OpenXPS offers more advanced graphics capabilities.[16] PCL relies on printer-specific escape sequences for tasks like text placement and simple raster graphics, which limit its support for sophisticated features such as vector paths, transparency, and gradients.[16] OpenXPS, however, natively incorporates XML elements like<Path> for scalable vector graphics, <Opacity> attributes for transparency blending (ranging from 0.0 to 1.0), and <LinearGradientBrush> for smooth color transitions, providing richer, device-independent visual fidelity that surpasses PCL's hardware-dependent constraints.[8]
A key advantage of OpenXPS lies in its openness, leveraging standardized web technologies such as XML for content description and ZIP-based Open Packaging Conventions for file structure, which promote interoperability and extensibility without proprietary dependencies common in older PDLs like PostScript and early PCL versions.[8] This design facilitates compact representation, unambiguous rendering across platforms, and features like digital signatures and resource sharing, contrasting with the more closed or device-tied elements in legacy formats.[15] As a result, OpenXPS enhances portability, scalability, and accessibility, including support for screen readers via structured markup, while maintaining high color fidelity through ICC profiles.[8]
In terms of use cases, OpenXPS is optimized for digital distribution, such as e-books, web archiving, and cross-platform sharing, where its fixed-layout format ensures consistent viewing and interactivity like hyperlinks without alteration.[8] PostScript and PCL, by comparison, are geared toward direct printing workflows, with PostScript excelling in professional graphics production via its programmable precision and PCL suiting efficient, high-volume office printing through streamlined commands.[14][16]
