指定要在C#中打印的页数

问题描述

| 我该如何指定打印机和要打印的页数,这是我的代码,可将所有页面打印为pdf文件,并且它始终使用认打印机。
private void printPDFFile(string fileName)
    {
        PrintDialog pd = new PrintDialog();
        pd.PrinterSettings = new PrinterSettings();

        if (DialogResult.OK == pd.ShowDialog(this))
        {
          Process proc = new Process();
          pd.PrinterSettings.FromPage = 1;
          pd.PrinterSettings.ToPage = 2; 
          pd.PrinterSettings.PrintRange = PrintRange.somePages;
          proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; //Hide the window.
          proc.StartInfo.FileName = @\"C:\\Program Files\\Foxit Software\\Foxit                Reader\\Foxit Reader.exe\";

          proc.StartInfo.Arguments = \"-p \\\"\"+ fileName+ \"\\\" \\\"\"       +pd.PrinterSettings.PrinterName+\"\\\"\";

            proc.StartInfo.CreateNowindow = true;//!! Don\'t create a Window.
            proc.Start();
            proc.CloseMainWindow();
        }
    }  
    

解决方法

        打印不是在C#中完成,而是从Foxit Reader中进行。 查看其手册(pdf),了解控制所需内容的选项。用
-t <Printer>
打印到特定打印机。看来您无法打印特定页面,请尝试将
-t
-n
组合在一起。