16


0

XPSのポイントは何ですか?

WPFについての本を読んだとき、著者がXPSについて言及しているのを見ました。 WindowsにはXPSビューアーも含まれており、これはWindowsの「機能」としてリストされています。

しかし、なぜ? ポイントは何ですか? 一体誰がそれを使用しますか? XPSは、基本的にPDF、xhtml、またはePub(これはxhtmlだけです)…​またはWordの_docx_形式です。 機能の多くは、これらの形式間で同じです。

他の形式と比較して大きな利点はないようです。 RichTextBoxからFlowDocumentsを保存およびロードする方法として、xhtmlはXPSよりもはるかに便利であるように思えます。 2つのブログの変換に関する複数のブログを見てきました。 インターネット上のリッチテキストのほとんどまたはすべては(x)htmlです。 それ以外に、ドキュメントを公開するためだけに使用する人はいないと思います。 PDFが推奨されます。 XPSは、MSが作成し、プッシュすることに決めた単なるランダムなフォーマットのようです。 私は一般的にMSを愛していますが、彼らはそのようなことの習慣を持っています。 MSは代わりにxhtmlを使用してAPIを作成できませんでしたか? それは多くの状況でもっと役に立つと思います。

だから、特に私が言及した他の形式の1つ(または私がまだ持っていないもの)と比較して、XPSを使用するポイントはありますか? プログラムなどでXPSを使用したことがありますか?

7 Answer


8


U62がすでに述べたように、WPFにはXPSドキュメントを表示できるDocumentViewerコントロールが付属しています。 DocumentViewerには、Print、Zoom、FitToPageなどの便利な機能もあります。 したがって、それを実装したり、サードパーティのツールを使用したりする必要はありません。

XPSとDocumentViewerを使用して1時間前に終えたのは、ある種の「住所ラベル印刷プレビュー」です。 ユーザーが連絡先のリストからいくつかの連絡先を選択できるようにし、「印刷プレビュー」をクリックします。 これにより、DocumentViewerコントロールと、さまざまなラベルを選択できるListBoxを含む新しいXAMLウィンドウが開きます(例: 12枚のラベルが付いた1枚のシート[2列、6行]、幅と高さをユーザーが定義できる単一のラベルが付いた1枚のシート)。 ユーザーの選択に基づいて、選択した連絡先のアドレスでユーザーが選択したレイアウトでXPSドキュメントを生成します。 例えば ユーザーが4つの連絡先を選択し、それらを「SingleLabelSheet」に印刷したい場合、各ページに1つのアドレスを含む4ページのXPSドキュメントを1つ生成します。 次に、DocumentViewerでXPSを表示すると、ユーザーはラベルプリンターでラベルを印刷できます。

XPS APIがどのように機能するか(少なくともBasics)を理解したら、これを起動して実行するのに2時間かかりました。

したがって、基本的に、XPSは、オンザフライで生成されるFixedDocumentを表示するための使いやすいAPIであると考えています。 しかし、私はそれらを自分のHDDに個人的に保存したり、何らかの形でそれらを変更したり、ドキュメントで一般的に行うことは何もしません。


3


私が考えることができる唯一の実際の利点は、WPFアプリケーションでXPSドキュメントを表示するためのコントロールがあることです。 あなたが言及する他のフォーマットは、サードパーティのレンダラーを持ち込む必要があることを意味します(または、1年の余裕がある場合は自分でレンダラーを書いてください)。

btw. ePubについてはあまり知りませんが、XPSはXHTMLに直接匹敵するものではなく、固定レイアウトを使用するように設計されているという点でPDFに似ています。


3


XPS to WPFはWMF to Win32 / WinFormsに似ており、ネイティブWPFグラフィックスを保存および印刷できる永続的な形式です。

XPSはWPFからの印刷に使用されます(保存せずにアプリケーションから直接印刷する場合でも、内部印刷システムはXPS上に構築されます)。

  1. 目的にぴったり合った新しいファイル形式を作成します do

  2. WPFから100%完全な翻訳者をWPFからそうでない形式に構築する PDFのようなコントロール(およびAdobeがAcrobat Readerの次のリリースですべてのWPFアプリケーションを壊さないことを願っています)。

あなたならどうしますか?

XPSファイルを保存するのはいいボーナスです。


3


見てください、私はレポート生成ソリューションとしてXPSの悲観主義者かもしれませんが、私はそれを試してみて、最初のドキュメントを理解するのは難しいと思いました。 実際のビジネスアプリケーションにそれを入れたとき、特に複数のページにまたがるテーブルを必要とするLOBアプリでは、イライラすることがわかりました。

それ以降は状況が変わったかもしれませんが、いくつかのページにまたがるテーブルを見始めてすぐに、列ヘッダーを最上部に移動したい、などです。 APIを使用すると、不必要な複雑さで過度の回避策と呼ばれることを行う必要があることがわかりました。

そのため、その後(約8か月前)状況が変わった可能性がありますが、XPSからITextSharpを使用するようになりました。

だから、他の皆と同じように、私が言う唯一の利点は、WPFの組み込みビューアーです。


2


実際、私はXPSを使用する本当に良い理由を見つけました。 複数のソース(https://stackoverflow.com/questions/1660748/can-multiple-xps-documents-be-merged-to-one-in-wpf[merge documents])から印刷し、両面印刷とホチキス留めを指定したかった。 最後に、両面印刷した1つの文書として印刷し、ホチキスで留めます。 そうするのは大変でしたが、XPSに印刷する(ディスクに保存する)ことで、最小限の手間で目標を達成できることがわかりました。 これほど簡単で簡単な方法は他にありません。

    Dim PrintServer As New SysPrint.PrintServer("\\" & My.Computer.Name)
    Dim PrintQ As New SysPrint.PrintQueue(PrintServer, "Ricoh Main")
    Dim Jobs As SysPrint.PrintJobInfoCollection = PrintQ.GetPrintJobInfoCollection
    Dim able As SysPrint.PrintCapabilities = PrintQ.GetPrintCapabilities()

    Dim CurrentTicket As SysPrint.PrintTicket = PrintQ.CurrentJobSettings.CurrentPrintTicket
    If able.StaplingCapability IsNot Nothing AndAlso able.StaplingCapability.Count > 0 Then
        If able.StaplingCapability.Contains(Printing.Stapling.StapleTopLeft) Then
            CurrentTicket.Stapling = Printing.Stapling.StapleTopLeft
        End If
    Else
        Debug.Print("no stapling capability")
    End If

    CurrentTicket.Duplexing = Printing.Duplexing.TwoSidedLongEdge

    Dim fiName As String = "S:\Temp\PS\XPS\Test.xps"

    Dim TestJob As SysPrint.PrintSystemJobInfo _
            = PrintQ.AddJob("Test job", fiName, False)


1


XPS(コード名は「メトロ」)は、Windows VistaのPDFおよびPostScriptに代わるマイクロソフトの代替として明確に設計されました。 こちらの古い記事をご覧ください:http://www.pcmag.com/article2/0,2817,1789302,00.asp[Microsoft Readies New Document Printing Specification]


0


ドキュメント形式を発明する際には、さまざまなアプローチがあります。

  • HTML、docなど、画面上にすばやく表示するため(低解像度など)に作成されるものもあります。

  • 他のいくつかは、印刷コントラインに非常に敬意を表しています(またはそうすることができます) 品質ベース)、PDF、XPSなど。

したがって、XPSはPDFと同等であることに加えて、XMLでフォーマットされているため、「多分」それはPDFのストリームアプローチよりも標準的です。

XPSのブラックスポットは、特別な色(Pantone、ペーパーエフェクト)の管理かもしれません。