问题描述
|
我该如何指定打印机和要打印的页数,这是我的代码,可将所有页面打印为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
组合在一起。