XpsStat: A program for gathering statistics information of XPS documents

In the Winhec presentation on XPS document performance optimization, a simple program XpsStat is introduced to analyze XPS documents. 

Given an XPS document, XpsStat generates four or five tables in HTML format:

  • Container Summary Table: information about each type of parts in the document.
  • FixedPage / Remote Resource Dictionary Table: information about each fixed page / remote resource dictionary in the document.
  • Font Resource Table: information about each font resource in the document
  • Image Resource Table: information about each image resource in the document
  • Container Part Table (optional): information about each part in the document

The program has three command line options:

  • /x Generate report in XML format instead of the default HTML format
  • /a Generate the optional Container Part Table
  • /d Extract fonts to external files, unobfuscated.

The program is written using .Net 3.0 XPS related API and some direct parsing of ZIP container. It supports both interleaved and non-interleaved XPS files.

Here is the binary: https://blog.fengyuan.com/XpsStat.exe

Here is what the Container Summary Table the program will generate for XPS Specification 1.0 in XPS format:

Container Summary
Type Count Piece Uncompressed Compressed Compression
Size Percent Average Size Percent Average
fixedpage+xml 453 453 116,521,006 96.74 % 257,220 5,912,474 75.13 % 13,051 94.93 %
package.relationships+xml 434 434 573,558 0.48 % 1,321 164,871 2.09 % 379 71.25 %
properties+xml 1 1 673 0.00 % 673 342 0.00 % 342 49.18 %
fixeddocument+xml 1 1 289,702 0.24 % 289,702 13,756 0.17 % 13,756 95.25 %
opentype 20 20 1,647,572 1.37 % 82,378 576,144 7.32 % 28,807 65.03 %
image 492 492 1,042,993 0.87 % 2,119 992,681 12.61 % 2,017 4.82 %
fixeddocumentsequence+xml 1 1 320 0.00 % 320 160 0.00 % 160 50.00 %
documentstructure+xml 1 1 179,194 0.15 % 179,194 13,154 0.17 % 13,154 92.66 %
/Documents/1/ 1 1 0 0.00 % 0 0 0.00 % 0 NaN %
/[Content_Types].xml 1 1 1,023 0.00 % 1,023 331 0.00 % 331 67.64 %
/Documents/1/_rels/ 1 1 0 0.00 % 0 0 0.00 % 0 NaN %
/Documents/1/Pages/ 1 1 0 0.00 % 0 0 0.00 % 0 NaN %
/Resources/Images/ 1 1 0 0.00 % 0 0 0.00 % 0 NaN %
/Documents/1/Pages/_rels/ 1 1 0 0.00 % 0 0 0.00 % 0 NaN %
/Documents/1/Structure/ 1 1 0 0.00 % 0 0 0.00 % 0 NaN %
ZIP Structure 195,978 0.16 % 195,978 195,978 2.49 % 195,978 0.00 %
Summary 1,410 1,410 120,452,019 100.00 % 85,426 7,869,891 100.00 % 5,581 93.47 %