0

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;
        }
    }
4

0 に答える 0