Cos'è XPS un file? | Base di conoscenza
Introduzione
Dall’articolo su Pagina Descrizione Lingue Hai scoperto che XPS è uno dei PDL statici. L’articolo qui ti fornirà maggiori informazioni sul formato XPS e sui file XPS, le loro peculiarità, struttura e utilizzo.
Cos’è il formato XPS?
Il file delle specifiche cartaceo XML XPS o abbreviato rappresenta un pacchetto di risorse compresso con zip (immagini, caratteri, ecc.) E file basati su XML che fanno riferimento a queste risorse. I file basati su XML archiviano il contenuto di documenti, pagine e relazioni tra le varie parti del pacchetto. È una caratteristica importante del formato XPS che tutte le risorse necessarie dei documenti sono archiviate nello stesso pacchetto dei documenti stessi.
Struttura tipica di un file di formato XPS
Se apriamo qualsiasi file XPS con un po ‘di utilità zip, possiamo visualizzare la seguente struttura:
“FISSO DOCUMENT sequense.fdseq” è una radice di pacchetto. Contiene un elenco di documenti nel pacchetto.
<FixedDocumentSequence xmlns="http://schemas.microsoft.com/xps/2005/06">
<DocumentReference Source="Documents/1/FixedDocument.fdoc" />
</FixedDocumentSequence>
Nell’esempio sopra la sequenza di documenti fissi contiene solo un documento, ma può contenere più documenti.
“[Content_type] .xml” contiene una mappatura tra estensioni di parti di pacchetto e tipi di contenuto descritti negli schemi XML corrispondenti:
<?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>
Le parti “Documento” si trovano nella cartella “Documenti” e anche nella loro cartella il cui nome è un indice del documento nella parte “Sequenza di documenti fissi”.
La cartella del documento contiene anche parti “fpage” o “pagina fissa” e una cartella con relazioni delle pagine.
“Fixdocument.fdoc” contiene riferimenti su parti ed elenchi di “pagina fissa” di “target di collegamento”.
<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>
L’elemento LinkTarget definisce l’elemento di descrizione della pagina denominato che può essere indirizzato dal collegamento ipertestuale.
“Pagina fissa” contiene una descrizione della pagina statica in cui qualsiasi elemento grafico è rappresentato da un elemento XML con tutte le proprietà necessarie. Di seguito è riportato il contenuto ridotto della pagina fissa con un indice 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>
Come possiamo vedere, ci sono diversi elementi grafici: “percorso”, “pathgeometria” e “glifi” ed elementi che raggruppano altri elementi grafici con la stessa trasformazione e ritaglio, “tela”. “Path” e “Pathgeometry” possono contenere la forma grafica vettoriale accarezzata o/e riempita con un colore solido o un pennello complesso, ad esempio gradiente o pennello per immagini. Il pennello a gradiente può essere lineare o radiale e il pennello immagine contiene sempre riferimenti su un’immagine nella cartella “Risorse”. Ora esiste un elemento grafico separato per un’immagine raster. L’elemento “percorso” riempito con “ImageBrush” viene utilizzato per questo scopo.
Un altro aspetto degno di nota che possiamo trovare in questo frammento di descrizione di pagina è che il testo è contenuto solo nell’elemento “Glyphs” come attributo “unicodeString” anziché come elemento figlio di questo elemento come in XML o HTML. Pertanto, il contenuto non è separato dal markup. Ecco perché XPS non può essere definito un linguaggio di markup.
La sintassi dei file XPS, così come quella dell’XML, è in forma ABNF (Augmented Backus-Naur Form).
Le risorse utilizzate dalla pagina si trovano in un elemento separato “Fixpage.resources”.
Quelle risorse di pagina che hanno riferimento su remoti (remoto per questa pagina non per questo file XPS), ad esempio caratteri o immagini, hanno anche note corrispondenti nel file delle relazioni “*.fpage.rels”.
Le risorse sono archiviate in cartelle con il nome “Risorse”. Tali cartelle possono essere posizionate su diversi livelli di struttura del pacchetto. Di norma, i caratteri e le immagini sono contenuti lì. Tutti i caratteri hanno un’estensione *.ttf per caratteri TrueType o estensione *.odttf per caratteri truetype offuscati. L’offuscamento dei caratteri è fatta per sopprimere l’estrazione dei caratteri e usarlo in altri luoghi senza permesso. Oltre ai caratteri TrueType XPS supporta solo raccolte di caratteri TrueType con estensione *.ODTTC. Non sono supportati altri tipi di carattere. Le immagini possono essere in formato PNG, JPEG, TIFF o WDP (Windows Media Photo Images).
A volte tra le altre risorse il file .dic viene soddisfatto. È una parte del dizionario. Contiene comune per documenti o pagine le cosiddette “risorse remote” che non richiedono file separati. Remoto in un certo senso che non sono archiviati in una parte “documento” ma in una cartella esterna. Tra queste risorse può essere spazzola, pathgeometria, elementi matrixtransform ecc. I colori ICC che vengono utilizzati nel documento sono anche messi come file “.icc” nella cartella “risorse”.
Parti opzionali di un file XPS.
Il file XPS può contenere parti aggiuntive, non mandatori, per la navigazione, la stampa e la firma.
Struttura del documento XPS.
La navigazione su parti di documenti è realizzata dalla parte di “documentsructure” e dai suoi elementi infantili “documentoutline”, “storia”, “storyfragment”, “Paragrafo”, “Tabella” e “Nominato Element”. La struttura del documento è memorizzata nella cartella del documento insieme alle pagine.
Il file “Doctruture.struct” contiene DocumentOutline con riferimenti su StoryFragments.
<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>
Nella storia della cartella “frammenti” sono memorizzati i frammenti.
Ogni “frammento” contiene “paragrafi” con elementi “nominati” e “tabelle”.
<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>
Stampa i biglietti nei file XPS.
Le funzionalità di stampa sono implementate tramite parti “PrintTicket”. Contiene impostazioni di stampa che possono essere allegate a una sequenza di documenti, un documento o una pagina. Le parti “PrintTicket” sono archiviate in file con “*_pt.xml” maschera in cui “pt” significa printicket. I file printticket si trovano nella cartella “metadati”.
Esempio di 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>
Miniature.
Nelle cartelle “Metadata” anche le immagini di miniature sono archiviate se lo sono.
SignatureDefinitions.
La parte “SignatureDefinitions” consente la firma, la richiesta e la convalida delle parti arbitrarie dei documenti XPS in conformità alla politica di firma definita nella parte “SignatureDefinitions”.
Supporto per caratteri, colori e immagini nei documenti 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 supporta solo il formato di caratteri OpenType, che è esteso dal formato TrueType Microsoft che combina i formati di caratteri TrueType (TTF) e CFF (CFF).
Come aprire il file XPS?
Il file XPS può essere aperto con il visualizzatore XPS di Microsoft. È un componente Windows standard che inizia con Windows Vista. Un modo alternativo è di visualizzare il file XPS con applicazione Web Aspose.Page XPS.
Posso convertire un file XPS in un PDF?
Il modo più rapido per convertire i file XPS in PDF è utilizzare Aspose.Page Conversion Applicazione Web. ASPUTI XPS Converter supporta XPS in PDF, DOC, DOCX, HTML, Tex, SVG, PNG, JPG, TIFF, BMP Conversioni. Se sei uno sviluppatore e desideri utilizzare la nostra libreria per tali conversioni, impara l’articolo PDLS Converter per trovare gli esempi illustrati con frammenti di codice su come eseguire la conversione.
Posso aprire un file XPS in Word?
Non è possibile direttamente, ma è possibile convertire un file XPS in documento Word tramite Aspose.Page Conversion Applicazione Web e quindi aprirlo Microsoft Word Text Editor.
I file XPS possono essere convertiti in Excel?
Sì, è possibile convertire XPS in Excel online nell’applicazione Web Aspose.Page Conversion. Il documento XPS sarà riconosciuto come una tabella. Le immagini non vengono trasferite al file XLSX risultante.
Come apro un file XPS in Photoshop?
Non è possibile direttamente, ma è possibile aprire i file di immagine raster risultanti da XPS all’immagine (JPG, PNG, TIFF, BMP) conversione in Aspose.Page Conversion App Web o puoi semplicemente aprire il file XPS con Adobe Utilità.
XPS è migliore di PDF?
Dipende dalle tue esigenze. Vedere un articolo confronto delle lingue di descrizione della pagina. Spero che ti aiuti a prendere la decisione giusta.
Come apro un file XPS sul mio telefono?
È possibile onpen un file XPS in qualsiasi browser con applicazione Web Aspose.Page XPS Viewer.