8

ドキュメントビューアを使用するWPFアプリケーションがあります。また、documentviewer.Print();を使用してプログラムで印刷を開始します。ただし、それを押すと、Windowsプリンターの画面が表示され、ユーザーはその画面でもう一度[OK]をクリックして開始する必要があります。確認を回避してdocumentviewer.Print();を作成する方法はありますか?デフォルトのWindowsプリンターですぐに印刷ジョブを開始しますか?

4

1 に答える 1

8

必要なのは、経由で取得できるデフォルトの印刷キューだけです。

var pq = LocalPrintServer.GetDefaultPrintQueue()

これから、XpsDocumentWriterを作成できます。

var writer = PrintQueue.CreateXpsDocumentWriter(pq);

これで、 Document プロパティを介してDocumentViewerから DocumentPaginatorを取得できます。これは、 DocumentPaginator プロパティを持つ IDocumentPaginatorSource を返します。

var paginator = documentviewer.Document.DocumentPaginator;

そして、その権利をXpsDocumentWriter の Write メソッドに送信できます。

writer.Write(paginator);

シンプルですね。

于 2011-04-18T14:56:30.283 に答える