XPSはファイルとは何ですか? |知識ベース
導入
[ページの説明言語]に関する記事から(1)XPSが静的PDLの1つであることがわかりました。ここの記事では、XPS形式とXPSファイル、それらの特異性、構造、使用に関する詳細情報を提供します。
XPS形式とは何ですか?
XPSまたは省略されたXMLペーパー仕様ファイルは、これらのリソースを参照するリソースのZIP圧縮パッケージ(画像、フォントなど)とXMLベースのファイルを表します。 XMLベースのファイルは、ドキュメントとページの内容と、パッケージのさまざまな部分間の関係を保存します。 XPS形式の重要な機能は、ドキュメントのすべての必要なリソースがドキュメント自体と同じパッケージに保存されることです。
XPS形式のファイルの典型的な構造
zipユーティリティでXPSファイルを開くと、次の構造を表示できます。
「Dixed Document Sequense.FDSEQ」は、パッケージツリーのルートです。パッケージ内のドキュメントのリストが含まれています。
<FixedDocumentSequence xmlns="http://schemas.microsoft.com/xps/2005/06">
<DocumentReference Source="Documents/1/FixedDocument.fdoc" />
</FixedDocumentSequence>
上記の例では、固定されたドキュメントシーケンスには1つのドキュメントのみが含まれていますが、より多くのドキュメントを含めることができます。
「[content_type] .xml」には、パッケージパーツの拡張機能と、対応するXMLスキーマで説明されているコンテンツタイプ間のマッピングが含まれています。
<?xml version="1.0" encoding="utf-8"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
<Default Extension="fdseq" ContentType="application/vnd.ms-package.xps-fixeddocumentsequence+xml" />
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />
<Default Extension="fdoc" ContentType="application/vnd.ms-package.xps-fixeddocument+xml" />
<Default Extension="fpage" ContentType="application/vnd.ms-package.xps-fixedpage+xml" />
<Default Extension="ODTTF" ContentType="application/vnd.ms-package.obfuscated-opentype" />
<Default Extension="png" ContentType="image/png" />
</Types>
「ドキュメント」部品は、「ドキュメント」フォルダーと、「固定ドキュメントシーケンス」パーツのドキュメントのインデックスである独自のフォルダーにあります。
Documentのフォルダーには、「FPAGE」または「固定ページ」パーツと、ページの関係があるフォルダーも含まれています。
「sixeddocument.fdoc」には、「固定ページ」パーツと「リンクターゲット」のリストに参照が含まれています。
<FixedDocument xmlns="http://schemas.microsoft.com/xps/2005/06">
<PageContent Source="Pages/1.fpage">
<PageContent.LinkTargets>
<LinkTarget Name="Page1" />
<LinkTarget Name="Conditions" />
<LinkTarget Name="Rfd_Conditions" />
<LinkTarget Name="Label2" />
......................................
<PageContent.LinkTargets>
</PageContent>
<PageContent Source="Pages/2.fpage">
<PageContent.LinkTargets>
<LinkTarget Name="Page2" />
<LinkTarget Name="Rectangle" />
<LinkTarget Name="peQ5" />
......................................
<PageContent.LinkTargets>
</PageContent>
<PageContent Source="Pages/3.fpage">
<PageContent.LinkTargets>
<LinkTarget Name="Page3" />
<LinkTarget Name="Followup" />
<LinkTarget Name="Rfd_Followup" />
<LinkTarget Name="Label41" />
......................................
</PageContent.LinkTargets>
</PageContent>
</FixedDocument>
LinkTarget要素は、HyperLinkでアドレス指定できる名前のページ説明要素を定義します。
「固定ページ」には、グラフィック要素がすべての必要なプロパティを持つXML要素で表される静的ページの説明が1つ含まれています。 以下は、インデックス1の固定ページのコンテンツの削減です。
<FixedPage xmlns="http://schemas.microsoft.com/xps/2005/06" xmlns:x="http://schemas.microsoft.com/xps/2005/06/resourcedictionary-key" xml:lang="en-us" Width="784" Height="1024">
<FixedPage.Resources>
<ResourceDictionary>
<ImageBrush x:Key="b0" ViewportUnits="Absolute" TileMode="None" ViewboxUnits="Absolute" Viewbox="0,0,150,84" Viewport="0,0,150,84" ImageSource="/Resources/5acf843b-c331-4268-bedd-1f38575d2cba.png" />
<ImageBrush x:Key="b1" ViewportUnits="Absolute" TileMode="None" ViewboxUnits="Absolute" Viewbox="0,0,308,222" Viewport="0,0,306.612612612613,221" ImageSource="/Resources/56123998-a878-4552-a78f-652734403449.png" />
<LinearGradientBrush x:Key="b2" StartPoint="1,1" EndPoint="1,29" ColorInterpolationMode="SRgbLinearInterpolation" MappingMode="Absolute" SpreadMethod="Pad">
<LinearGradientBrush.GradientStops>
<GradientStop Color="sc#0.980392158, 1, 1, 1" Offset="0" />
<GradientStop Color="sc#0.521568656, 1, 1, 1" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
<ImageBrush x:Key="b3" ViewportUnits="Absolute" TileMode="None" ViewboxUnits="Absolute" Viewbox="-1.77635683940025E-15,0,30.004187214593,28.0039080669535" Viewport="0,0,34,31.7333333333333" ImageSource="/Resources/1fcae301-7b09-41d4-b09c-adb92c26d9df.png" />
<ImageBrush x:Key="b4" ViewportUnits="Absolute" TileMode="None" ViewboxUnits="Absolute" Viewbox="0,0,33.92,42.24" Viewport="0,0,33.92,42.24" ImageSource="/Resources/9812220b-fe0b-4df4-946a-391c0ef76f78.png" />
</ResourceDictionary>
</FixedPage.Resources>
<Canvas RenderTransform="0.96150234741784,0,0,0.96150234741784,0,0">
<Canvas Name="Page1" RenderTransform="1.0400390625,0,0,1.0400390625,0,0">
<Path Fill="#FFFFFFFF" Data="M0,0L784,0 784,1024 0,1024Z" />
<Canvas Clip="M0,0L784,0 784,1024 0,1024Z">
<Canvas Name="Rfd_Conditions" RenderTransform="1,0,0,1,51,712" />
<Glyphs Name="Label2" OriginX="517.83" OriginY="22.0533333333333" FontRenderingEmSize="10" FontUri="/Resources/6211f37e-c1a8-4b0a-82b1-9eb64114c039.ODTTF" UnicodeString="Patient Name:" Fill="#FF404040" />
<Glyphs Name="Label3" OriginX="556.08" OriginY="42.0533333333333" FontRenderingEmSize="10" FontUri="/Resources/6211f37e-c1a8-4b0a-82b1-9eb64114c039.ODTTF" UnicodeString="Acct#:" Fill="#FF404040" />
<Path Name="Line" Stroke="#FF00529B" StrokeThickness="1" StrokeMiterLimit="10" Fill="#00FFFFFF" RenderTransform="1,0,0,1,41,206" Data="M0,0.5L680,0.5" />
<Path Name="Image" Fill="{StaticResource b0}" RenderTransform="1,0,0,1,15,7" Data="M0,0L150,0 150,84 0,84Z" />
<Canvas Name="HxConditionsDissatisfiedPatients" RenderTransform="1,0,0,1,53,714">
<Path Stroke="#FF000000" StrokeThickness="1" StrokeMiterLimit="10" RenderTransform="0.8,0,0,0.8,2.4,2.4" Data="M0.5,0.5L23.5,0.5 23.5,23.5 0.5,23.5Z" />
<Glyphs OriginX="33" OriginY="16.16" FontRenderingEmSize="12" FontUri="/Resources/2735f4ff-8c83-44e1-89ed-520ec4c4be53.ODTTF" UnicodeString="Dissatisfied patients" Fill="#FF404040" />
</Canvas>
<Path Name="Rectangle3" Stroke="#FF808080" StrokeThickness="1" StrokeMiterLimit="10" Fill="#00FFFFFF" RenderTransform="1,0,0,1,74,951" Data="M0.5,0.5L329.5,0.5 329.5,44.5 0.5,44.5Z" />
<Canvas Name="Conditions" RenderTransform="1,0,0,1,51,712" />
<Path Fill="#FF0066CC" Data="M0,12.77L330.4,12.77 330.4,13.47 0,13.47Z" />
</Canvas>
<PathGeometry x:Key="all">
<PathFigure StartPoint="20,70" IsClosed="true">
<PolyLineSegment Points="250,70 250,300 20,300" />
</PathFigure>
<PathFigure StartPoint="135,70">
<ArcSegment Size="115,115" IsLargeArc="true" RotationAngle="0" SweepDirection="Counterclockwise" Point="135,300" />
<ArcSegment Size="115,115" IsLargeArc="true" RotationAngle="0" SweepDirection="Counterclockwise" Point="135,70" />
</PathFigure>
<PathFigure StartPoint="135,70">
<PolyQuadraticBezierSegment Points="270,185 135,300" />
<PolyQuadraticBezierSegment Points="0,185 135,70" />
</PathFigure>
<PathFigure StartPoint="250,185">
<PolyBezierSegment Points="173.34,85 96.67,285 20,185" />
<PolyBezierSegment Points="96.67,85 173.34,285 250,185" />
</PathFigure>
</PathGeometry>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
<Path FixedPage.NavigateUri="http://www.bottomline.com" Fill="#00000000" Data="F1M170,77L500.4,77 500.4,91.58 170,91.58Z" />
</FixedPage>
ご覧のとおり、「パス」、「パスジオメトリー」、「グリフ」、および同じ変換とクリッピング、「キャンバス」で他のグラフィック要素をグループ化する要素のグラフィック要素がいくつかあります。 「パス」および「パスジョーメトリー」には、ベクトルグラフィック形状がストロークまたは/、および勾配や画像ブラシなど、固体または複雑なブラシで満たされたベクトルグラフィックスの形状を含めることができます。グラデーションブラシは線形または放射状であり、画像ブラシには常に「リソース」フォルダーの画像に参照が含まれています。これで、ラスター画像用の個別のグラフィック要素があります。 「ImageBrush」で満たされた「パス」要素がこの目的に使用されます。
このページの説明部分で注目すべきもう一つの点は、テキストがXMLやHTMLのようにこの要素の子要素としてではなく、「Glyphs」要素の「unicodeString」属性としてのみ含まれていることです。つまり、コンテンツはマークアップから分離されていません。これが、XPSをマークアップ言語と呼ぶことができない理由です。
XPSファイルの構文は、XMLと同様に拡張バッカス・ナウア記法(ABNF)です。
ページで使用されるリソースは、別の要素「fixedpage.resources」にあります。
たとえば、フォントや画像など、リモート(このXPSファイルではないこのページのリモート)に参照されるページリソースには、関係ファイル「*.fpage.rels」に対応するメモもあります。
リソースは、「リソース」という名前のフォルダーに保存されます。このようなフォルダーは、さまざまなレベルのパッケージ構造に配置できます。原則として、そこにフォントと画像が含まれています。すべてのフォントには、TrueTypeフォントの *.TTF拡張子または難読化されたTrueTypeフォントのODTTF拡張子があります。フォントの難読化は、フォントの抽出を抑制し、許可なく他の場所で使用するために行われます。 TrueType Fontsのほかに、XPSは *.odttc拡張機能を備えたTrueType Fontsコレクションのみをサポートします。他のフォントタイプはサポートされていません。画像は、PNG、JPEG、TIFF、またはWDP(Windows Media Photo Images)形式で存在する可能性があります。 他のリソースの中で時々 .dicファイルが満たされます。辞書の部分です。これには、個別のファイルを必要としないドキュメントまたはいわゆる「リモートリソース」に共通しています。 「ドキュメント」部品ではなく、外部フォルダーに保存されているという意味でリモート。これらのリソースには、ブラシ、パスジョーメトリー、マトリックストランスフォーム要素などがあります。ドキュメントで使用されるICC色は、「リソース」フォルダーの「.ICC」ファイルとしても配置されます。
XPSファイルのオプションの部分。
XPSファイルには、ナビゲート、印刷、署名のための追加の非志願部品を含めることができます。
XPSドキュメント構造。
ドキュメントパーツ上のナビゲーションは、「文書の構造」部分とその子要素「ドキュメントアウトライン」、「ストーリー」、「ストーリーフラグメント」によって実現されます。 「段落」、「テーブル」、「名前を付けた」。ドキュメント構造は、ドキュメントフォルダーにページと一緒に保存されます。
「docstructure.struct」ファイルには、ストーリーフレーズに関する参照があるドキュメントアウトラインが含まれています。
<DocumentStructure xmlns="http://schemas.microsoft.com/xps/2005/06/documentstructure">
<DocumentStructure.Outline>
<DocumentOutline xml:lang="en-US">
<OutlineEntry OutlineLevel="1" Description="Print Schema Specification" OutlineTarget="../FixedDoc.fdoc#PG_1_LNK_1069"/>
<OutlineEntry OutlineLevel="1" Description="Contents" OutlineTarget="../FixedDoc.fdoc#PG_8_LNK_1070"/>
<OutlineEntry OutlineLevel="2" Description="About This Specification" OutlineTarget="../FixedDoc.fdoc#PG_24_LNK_1074"/>
<OutlineEntry OutlineLevel="2" Description="How This Specification Is Organized" OutlineTarget="../FixedDoc.fdoc#PG_24_LNK_1075"/>
<OutlineEntry OutlineLevel="3" Description="2.1.4.1 <psf:Property>" OutlineTarget="../FixedDoc.fdoc#PG_49_LNK_1124"/>
<OutlineEntry OutlineLevel="4" Description="Example 2.1-6. Property syntax example" OutlineTarget="../FixedDoc.fdoc#PG_50_LNK_1125"/>
.....................................................................................................................................
</DocumentOutline>
</DocumentStructure.Outline>
<Story StoryName="MainStory">
<StoryFragmentReference Page="1"/>
<StoryFragmentReference Page="2"/>
<StoryFragmentReference Page="3"/>
.....................................
</Story>
<Story StoryName="s1">
<StoryFragmentReference Page="1"/>
</Story>
<Story StoryName="s2">
<StoryFragmentReference Page="2"/>
</Story>
<Story StoryName="s3">
<StoryFragmentReference Page="3"/>
</Story>
......................................
</DocumentStructure>
「フラグメント」フォルダーには、ストーリーフラグメントが保存されます。
それぞれの「フラグメント」には、「名前を付けられた」と「テーブル」要素を含む「段落」が含まれています。
<StoryFragments xmlns="http://schemas.microsoft.com/xps/2005/06/documentstructure">
<StoryFragment FragmentType="Content" StoryName="MainStory">
<ParagraphStructure>
<NamedElement NameReference="a5"/>
<NamedElement NameReference="a6"/>
<NamedElement NameReference="a7"/>
</ParagraphStructure>
<ParagraphStructure>
<NamedElement NameReference="a8"/>
</ParagraphStructure>
<TableStructure>
<TableRowGroupStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="a28"/>
<NamedElement NameReference="a29"/>
</ParagraphStructure>
</TableCellStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="a30"/>
<NamedElement NameReference="a31"/>
<NamedElement NameReference="a32"/>
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="a33"/>
<NamedElement NameReference="a34"/>
</ParagraphStructure>
</TableCellStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="a35"/>
<NamedElement NameReference="a36"/>
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
</TableRowGroupStructure>
</TableStructure>
<ParagraphStructure>
<NamedElement NameReference="a9"/>
<NamedElement NameReference="a10"/>
</ParagraphStructure>
...................................................................
</StoryFragment>
</StoryFragments>
XPSファイルにチケットを印刷します。
印刷機能は、「printticket」部品を介して実装されます。ドキュメントシーケンス、1つのドキュメント、またはページに添付できる印刷設定が含まれています。 「printticket」部品は、「*_pt.xml」マスクを備えたファイルに保存されます。「pt」はprintticketを意味します。 PrintTicketファイルは、「メタデータ」フォルダーにあります。
PrintTicketの例。
<?xml version="1.0" encoding="UTF-8"?>
<psf:PrintTicket xmlns:psf="http://schemas.microsoft.com/windows/2003/08/printing/printschemaframework"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
version="1"
xmlns:ns0000="http://schemas.microsoft.com/windows/2006/06/printing/printschemakeywords/microsoftxpsdocumentwriter"
xmlns:psk="http://schemas.microsoft.com/windows/2003/08/printing/printschemakeywords">
<psf:ParameterInit name="ns0000:PageDevmodeSnapshot">
<psf:Value xsi:type="xsd:string">
TQBpAGMAcgBvAHMAbwBmAHQAIABYAFAAUwAgAEQAb........=
</psf:Value>
</psf:ParameterInit>
<psf:ParameterInit name="psk:JobCopiesAllDocuments">
<psf:Value xsi:type="xsd:integer">1</psf:Value>
</psf:ParameterInit>
<psf:Feature name="psk:PageMediaSize">
<psf:Option name="psk:ISOA4">
<psf:ScoredProperty name="psk:MediaSizeWidth">
<psf:Value xsi:type="xsd:integer">210000</psf:Value>
</psf:ScoredProperty>
<psf:ScoredProperty name="psk:MediaSizeHeight">
<psf:Value xsi:type="xsd:integer">297000</psf:Value>
</psf:ScoredProperty>
</psf:Option>
</psf:Feature>
<psf:Feature name="psk:JobInputBin">
<psf:Option name="psk:AutoSelect"/>
</psf:Feature>
<psf:Feature name="ns0000:JobInterleaving">
<psf:Option name="ns0000:OFF"/>
</psf:Feature>
<psf:Feature name="ns0000:JobImageType">
<psf:Option name="ns0000:JPEGMed"/>
</psf:Feature>
<psf:Feature name="psk:PageOrientation">
<psf:Option name="psk:Portrait"/>
</psf:Feature>
<psf:Feature name="psk:DocumentCollate">
<psf:Option name="psk:Uncollated"/>
</psf:Feature>
<psf:Feature name="psk:PageResolution">
<psf:Option name="ns0000:Option1">
<psf:ScoredProperty name="psk:ResolutionX">
<psf:Value xsi:type="xsd:integer">600</psf:Value>
</psf:ScoredProperty>
<psf:ScoredProperty name="psk:ResolutionY">
<psf:Value xsi:type="xsd:integer">600</psf:Value>
</psf:ScoredProperty>
</psf:Option>
</psf:Feature>
<psf:Feature name="psk:PageOutputColor">
<psf:Option name="psk:Color">
<psf:ScoredProperty name="psk:DeviceBitsPerPixel">
<psf:Value xsi:type="xsd:integer">24</psf:Value>
</psf:ScoredProperty>
<psf:ScoredProperty name="psk:DriverBitsPerPixel">
<psf:Value xsi:type="xsd:integer">24</psf:Value>
</psf:ScoredProperty>
</psf:Option>
</psf:Feature>
</psf:PrintTicket>
サムネイル。
「メタデータ」フォルダーでは、サムネイル画像も保存されています。
SignatureDefinitions。
「SignatureDefinitions」部分は、「SignatureDefinitions」パートで定義されたポリシーの署名に従って、任意のXPSドキュメントパーツの署名、要求、および検証を許可します。
XPSドキュメントのフォント、色、画像のサポート
Font formats - Compact Fonts (CFF)- TrueType | Color space types - sRGB- scRGB- CMYK- N-Channel- ICC version 2 | Image formats - JPEG- PNG- TIFF- Windows Media Photo Image (WDP) |
XPSは、TrueType Font(TTF)とCompact Font(CFF)形式を組み合わせたMicrosoft TrueTypeフォーマットによって拡張されるOpentypeフォント形式のみをサポートします。
XPSファイルを開く方法は?
XPSファイルは、MicrosoftのXPS Viewerで開くことができます。 Windows Vistaから始まる標準のWindowsコンポーネントです。別の方法は、 aspose.page XPS ViewerWebアプリケーションを使用してXPSファイルを表示することです。
XPSファイルをPDFに変換できますか?
XPSファイルをPDFに変換する最も簡単な方法は使用することです Aspose.Page ConversionWebアプリケーション。 Aspose XPS Converterは、XPSをPDF、DOC、DOCX、HTML、TEX、SVG、PNG、JPG、TIFF、BMP変換にサポートします。開発者であり、そのような変換にライブラリを使用したい場合は、 PDLSコンバーターの記事を学習して、コンバージョンを行う方法のコードスニペットの例を見つけてください。
XPSファイルをWordで開くことはできますか?
直接不可能ですが、XPSファイルを Aspose.Page ConversionWebアプリケーションを介してWordドキュメントに変換してから、Microsoft Word Text Editorを開くことができます。
XPSファイルはExcelに変換できますか?
はい、XPSを Aspose.Page ConversionWebアプリケーションでオンラインでExcelに変換できます。 XPSドキュメントはテーブルとして認識されます。写真は、結果のXLSXファイルに転送されません。
PhotoshopでXPSファイルを開くにはどうすればよいですか?
直接は不可能ですが、XPS(JPG、PNG、TIFF、BMP)から生じるラスター画像ファイルを開くことができます。
XPSはPDFよりも優れていますか?
それはあなたのニーズに依存します。記事 ページ説明言語の比較を参照してください。それがあなたが正しい決定を下すのに役立つことを願っています。
電話でXPSファイルを開くにはどうすればよいですか?
Aspose.Page XPS ViewerWebアプリケーションを使用して、ブラウザでXPSファイルをオンペンできます。