public void printPDF()
{
string pdfPath ="c:\\test.pdf";
System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
Process processInstance = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.Verb = "Print";
startInfo.CreateNoWindow = true;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = @"/p /h \" + pdfPath + "\" \"" + pd.PrinterSettings.PrinterName + " \""; startInfo.FileName = pdfPath;
processInstance.StartInfo = startInfo; processInstance.Start();
processInstance.CloseMainWindow(); }这里面,pd.PrinterSettings.PrinterName用的是本机默认打印机,如何换成其他打印机(非默认的,比如 网内其它打印机:\\192.168.1.99\canon print)

解决方案 »

  1.   

    public void printPDF(string P_name)
            {
                string pdfPath ="c:\\test.pdf";
                System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
                Process processInstance = new Process();
                ProcessStartInfo startInfo = new ProcessStartInfo();
                startInfo.UseShellExecute = true;
                startInfo.Verb = "Print";
                startInfo.CreateNoWindow = true;
                startInfo.WindowStyle = ProcessWindowStyle.Hidden;
                startInfo.Arguments = @"/p /h \" + pdfPath + "\" \"" + pd.PrinterSettings.PrinterName + " \"";            if(P_name="1")
                {
                startInfo.FileName = pdfPath;
                }
                else
                { 
                 startInfo.FileName=P_name;
                }
                processInstance.StartInfo = startInfo;            processInstance.Start();
                processInstance.CloseMainWindow();        }加个参数呗  如果传进来的值是1 那就是默认。如果不是1 就是其他打印机的路径。
    比如:\\192.168.1.99\canon print
    记得加转义符。
      

  2.   

    你没看懂我的意思,
    在打印的时候似乎总是找本机的默认打印机进行打印,如果这里设置成非默认打印机,则打印不了.
    似乎是acrobat故意这样搞的?
      

  3.   

    web的话你是没有办法控制客户端打印的。列出客户端所有打印机都不能搞定
      

  4.   

    还真是,那个argument只认默认的打印机,自己指定的不行。winform是不是必须找第三方控件啊。