2011-06-16 24 views
1

如何指定打印機和要打印的頁數,這裏是我的代碼,它打印PDF文件中的所有頁面,並且它始終使用默認打印機。指定要在C#中打印的頁數

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(); 
     } 
    } 

回答

1

打印不是在C#中完成的,而是從Foxit Reader中完成的。

看看its manual (pdf)的選項,控制你所需要的。使用-t <Printer>可以打印到特定的打印機。看起來你不能打印一個特定的頁面,但試圖結合-t-n