9

Microsoft XPS Document Writer を使用して PDF ドキュメントを印刷する:

string filename = "C:\\1.pdf";

Process process = new Process();
process.StartInfo.Verb = "PrintTo";

process.StartInfo.FileName = @"C:\Program Files\Adobe\Reader 9.0\Reader\acrord32.exe";

process.StartInfo.Arguments = 
    "/t \"C:\\1.pdf\" \"Microsoft XPS Document Writer\" \"xps\"  XPSPort:";

process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;

process.StartInfo.UseShellExecute = false;

process.Start();
process.StandardOutput.ReadToEnd();

process.WaitForExit();

唯一の問題は、結果を保存するファイル名 (*.xps) を要求する [保存] ダイアログです。EverbodyはDOCINFOにこの問題を解決するようアドバイスしていますが、使用例は見つかりませんでした。デフォルトの出力ファイル名を使用して、Microsoft XPS Document Writer を介してプログラムで PDF ファイルを印刷する必要があります。この状況で DOCINFO をどのように使用すればよいですか?

手伝って頂けますか?

4

2 に答える 2

1

デスクトップセッションを与え、そこにユーザーがいる場合を除き、Acrobat Reader を起動して確実に印刷することはできません。これは、ユーザーの注意が必要なダイアログがポップアップすることがあるためです。

また、無人で使用すると Adob​​e のライセンスに違反します。

ただし、Ghostscript を使用して印刷することはできます。

Ghostscript.Net と呼ばれるGhostscriptへの C# インターフェイスがあり、いくつかの非常に大規模なプロジェクトでうまく使用しています。Ghostscript と Ghostcript.Net はどちらも無料でオープン ソースです。

于 2018-07-19T19:15:27.167 に答える
-1

DOCINFO 構造体は、印刷スプーラーでファイル名を管理しますが、xps ドライバーの保存ダイアログの実現とはリンクされません。ただし、[保存] ダイアログ ウィンドウが表示され、ファイル名を入力してプログラムで閉じる場合があります。たとえば、この記事を読んでください。

于 2010-02-18T10:17:06.647 に答える