System.Printing フレームワーク (主なクラスは PrintQueue、PrintTicket、および PrinterCapabilities です) を介して印刷を制御する作業を行います。私が最近取り組んでいるほとんどのものと同様に、それに関する情報はほとんどありません。この問題を具体化するために、この質問でいくつかの良い情報をまとめたいと思っています。
PrintTickets を使用すると、開発者は、印刷に関する最も一般的な構成設定を適切に処理できます。古い DEVMODE の方法で行う必要はありません (DEVMODE バイナリ ストリームを PrintTickets との間で変換できるので便利です!)。
問題は、それぞれ独自の構成を持つ多数のプリンターがあることです。これらは、PrintTickets 用に作成された優れたプロパティと列挙には含まれません。設定がこのインターフェイスを超えるプリンターを構成する必要がある場合は、PrintTicket を xml にシリアル化し、そこで変更する必要があります。
PrintTicket xml を使用している場合、日常生活は 3 つ以上のスキーマによって支配されています。そのうちの 2 つは Microsoft によるもので、1 つ以上はプリンターの製造元によるものです。2 つの MS スキーマは、
- PrintSchemaFramework http://schemas.microsoft.com/windows/2003/08/printing/printschemaframework
- PrintSchemaKeywords http://schemas.microsoft.com/windows/2003/08/printing/printschemakeywords
生の xml を扱った最初の問題の 1 つは、これらのスキーマをカバーする XSD が見つからないことです。
これらのスキーマの XSD を入手できる場所を知っている人はいますか?
私が遭遇した 2 番目の大きな問題は、ユーザー入力を PrintTicket xml にマッピングすることでした。最適には、「トレイ 3」などのユーザーの入力を取得し、それを PrintCapabilities を介してマップして、その機能に設定するオプションの値を決定したいと考えています。印刷機能のドキュメントはやや不明確であり、適切に行わないと戻ってきて噛まれるようなエッジケースがいっぱいあるのではないかと心配しています.
PrintTicket XML を変更するための良い例はありますか?
これは、この wiki の良い出発点です...
質問1の更新:
2005 年にさかのぼる WinHEC PPT から取得したアドレスに電子メールを送信し、Windows エクスペリエンス - ドキュメントと印刷のプログラム マネージャーである Justin Hutchings から実際の応答を受け取りました (クール、いいえ?):
意思、
Print Schema 名前空間の XSD はありません。Print Schema Specification 1.0 を確認し、それを使用して適合性を検証する必要があります。http://www.microsoft.com/whdc/xps/downloads.mspx
また、PrintVerifier には PrintSchema 検証が組み込まれています。Print Verifier の取得と構成の詳細については、次の URL を参照してください。