GDIをXPSに変換するときにMicrosoft XPS Document Writerで[名前を付けて保存]ダイアログを非表示にする
質問
彼のブログエントリユーザーの操作なしでドキュメントをMicrosoft XPS Document Writerに印刷する Feng Yuan氏
独自のアプリケーションから印刷する場合、MXDWをプリンタードライバーとして指定し、保存するXPSドキュメントのファイル名を指定するのは簡単です
誰でもそれを行う方法を説明し、コードサンプルを提供できますか?
私が抱えている主な問題は、Microsoft XPS Document Writerがポップアップする[名前を付けて保存]ダイアログを表示しないことです。 Yuanが彼の投稿で行っているように、UIハッキングに頼るのは嫌です。
現在、私のアプリケーションは、ユーザーが使用するプリンターのデバイスコンテキストでGDI描画呼び出しを行います。 XPS Document Writerでこれらの呼び出しを行うことはできますが、印刷が完了すると、XPS Writerが[名前を付けて保存]ダイアログボックスを表示します。
解決
確かに同じ著者が答えを提供しています Microsoft XPSへの印刷[ファイル保存]ダイアログボックスを表示しないドキュメントライタ。解決策は、Microsoft XPS Document Writerプリンターを使用してファイルに印刷することです。
他のヒント
また、XPSドキュメントでファイルシステムにアクセスすることを避けたい場合、Shahed Kahnは MemoryStreamからのXpsの読み込み。
これが私に役立つものです:
With Me.PrintDocument
With .PrinterSettings
.PrinterName = "Microsoft XPS Document Writer"
.PrintToFile = True
.PrintFileName = "c:\test.xps"
End With
.Print()
End With
私が知る限り、これは文書化されていません。試してみると、恐ろしい名前を付けて保存ダイアログは表示されません。代わりに、MXDWによって生成されたクリーンなXPSファイル(c:\ test.xps)を取得します。
Microsoft XPS Document Writerを削除して再インストールするだけで、再インストール中は次の手順に従ってください。
[スタート]-[コントロールパネル]-[新しいプリンターを追加]に移動します。次に、ローカルプリンターを選択し、新しいポートを作成します。コンボボックスで[ローカルポート]を選択します。ポート名を尋ねるダイアログが表示されます。ユーザーに場所を尋ねることなく、指定されたファイルに印刷するXPSドライバーの場合、この出力ファイルのフルパスを記述します。このファイルは、現時点で存在する必要はありません(c:\ mydriveroutput.xpsなど)。
詳細については、次のリンクを参照してください: https:/ /kibitzercz.blogspot.in/2012/01/building-and-using-xpsdrvsmpl-under.html