Adobe Readerを使用してPDFを印刷する機能を作成しました。すべて正常に動作しますが、印刷ダイアログ ボックスを抑制することができません。私が望むのは、印刷ダイアログボックスがポップアップせずに、プリンターからファイルを直接印刷することです。
これは印刷用の関数ですが、呼び出されるたびに印刷ダイアログがポップアップします。私はバッチpdf印刷を行っているので、毎回ポップしたくありません。
public static bool PrintPDFs(string pdfFileName)
{
try
{
var proc = new Process
{
StartInfo =
{
WindowStyle = ProcessWindowStyle.Hidden,
Verb = "print",
FileName =
Registry.LocalMachine.OpenSubKey("Software")
.OpenSubKey("Microsoft")
.OpenSubKey("Windows")
.OpenSubKey("CurrentVersion")
.OpenSubKey("App Paths")
.OpenSubKey("AcroRd32.exe")
.GetValue(string.Empty)
.ToString(),
//Define location of adobe reader/command line
//switches to launch adobe in "print" mode
Arguments = string.Format(@"/p /h {0}", pdfFileName),
UseShellExecute = false,
CreateNoWindow = true
}
};
proc.Start();
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
if (!proc.HasExited)
{
proc.WaitForExit(10000);
}
proc.EnableRaisingEvents = true;
proc.Close();
KillAdobe("AcroRd32");
return true;
}
catch
{
return false;
}
}