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: http://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 % |