2


2

GDIをXPSに変換するときにMicrosoft XPS Document Writerの[名前を付けて保存]ダイアログを非表示にする

彼のブログエントリではhttps://blogs.msdn.microsoft.com/fyuan/2007/02/24/printing-documents-to-microsoft-xps-document-writer-without-user-interaction/ [Microsoft XPSへの文書の印刷ユーザーの操作なしでドキュメントライター]風水元は言う

_ 独自のアプリケーションから印刷する場合は、MXDWをプリンタードライバーとして指定し、保存するXPSドキュメントのファイル名を指定するのは簡単です _

その方法を説明してコードサンプルを提供することはできますか?

私が抱えている主な問題は、Microsoft XPS Document Writerがポップアップする名前を付けて保存ダイアログを抑制することです。 Yuanが彼の投稿で行っているように、私はUIハッキングに頼るのが嫌です。

現在私のアプリケーションは、GDIがユーザーが使用したいプリンタのデバイスコンテキストを呼び出します。 XPS Document Writerでこれらの呼び出しを正常に実行できますが、印刷が完了するとXPS Writerは[名前を付けて保存]ダイアログボックスを表示します。

4 Answer


1


確かに同じ作者が答えを ファイル保存ダイアログボックスを表示せずにMicrosoft XPSドキュメントライターに印刷を提供します。 解決策は、Microsoft XPS Document Writerプリンタを使用してファイルに印刷することです。


0


また、XPSドキュメントでファイルシステムにアクセスしたくない場合は、Shahed Kahnがサンプルコードをhttp://msmvps.com/blogs/shahed/archive/2007/09/22 / loading-xps-from-memorystreamで提供しています。 aspx [MemoryStreamからのXpsの読み込み]。


0


これが私のために働くものです:

Me.PrintDocument With .PrinterSettings .PrinterName = "Microsoft XPSドキュメントライタ" .PrintToFile = True .PrintFileName = "c:\ test.xps" End With .Print()

私の知る限りでは、これは文書化されていません。 試してみると、恐ろしい[名前を付けて保存]ダイアログは表示されません。 代わりに、MXDWによって生成されたクリーンなXPSファイル(c:\ test.xps)を入手してください。


0


Microsoft XPS Document Writerを削除して再インストールするだけで、再インストール中に次の手順に従います。

スタート - コントロールパネル - 新しいプリンタの追加に進みます。 次に、ローカルプリンタと新規ポートの登録を選択します。 コンボボックスでローカルポートを選択します。 ポート名を尋ねるダイアログが表示されます。 ユーザーに場所を尋ねずにXPSドライバーが指定されたファイルに印刷するには、この出力ファイルのフルパスを入力します。 このファイルは現時点では存在している必要はありません(例えばc:\ mydriveroutput.xpsのようなもの)。

詳細については、このリンクを参照してください。https://kibitzercz.blogspot.in/2012/01/building-and-using-xpsdrvsmpl-under.html