打印文件时设置打印选项

4

我想设置我的打印作业。例如,我想在一张A4纸上打印4页PDF文件。我该怎么做?

这是我的打印PDF文件的代码:

    private void SendToPrinter()
    {
        OpenFileDialog ofd = new OpenFileDialog();

        if (ofd.ShowDialog() == DialogResult.OK)
        {
            ProcessStartInfo info = new ProcessStartInfo();
            info.Verb = "print";
            info.FileName = ofd.FileName;
            info.CreateNoWindow = true;
            info.WindowStyle = ProcessWindowStyle.Hidden;

            Process p = new Process();
            p.StartInfo = info;
            p.Start();

            p.WaitForInputIdle();
            System.Threading.Thread.Sleep(3000);
            if (false == p.CloseMainWindow())
                p.Kill();
        }
    }

你不能直接通过代码设置打印设置吗?还是说你需要根据某些条件更改设置? - Dexters
你似乎正在启动一个单独的进程进行打印。在这种情况下,您的代码运行所在的代码将成为一个单独的进程,因此除非有命令行参数,否则不认为会有简单的方法。 - Dexters
1个回答

1
不能使用 info.Verb = "print" 来实现。通过设置 Verbprint,您基本上是在使用 Windows Shell 命令 print,它需要两个参数:文件名和打印机设备名称。
如果您想使用特定的打印设置打印 PDF 文件,则必须使用第三方软件(如 Ghostscript),该软件可以使用命令行参数打印 PDF 文件。有关更多信息,请参见 this 文章。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接