2015-04-12 380 views
0

这里是我创建的PDF代码,它将打开PDF文档。使用C#窗口中的ReportViewer打印PDF

public void createPDF(string Reportpath, ReportViewer RV) 
     { 
      Warning[] warnings; 
      string[] streamids; 
      string mimeType = string.Empty; 
      string encoding = string.Empty; 
      string extension = string.Empty; 

      byte[] bytes = RV.LocalReport.Render("pdf", null, out mimeType, out encoding, out extension, out streamids, out warnings); 
      try 
      { 
       FileStream fs = new FileStream(Reportpath, FileMode.Create);      
       Thread.Sleep(1000); 
       fs.Write(bytes, 0, bytes.Length); 
       fs.Close(); 
       Thread.Sleep(1000); 
       System.Diagnostics.Process.Start(Reportpath); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("Report could not be created...\n" + ex.Message); 
      } 
     } 

而不是打开我需要直接使用reportviewer或任何其他方式打印该pdf文档??打印PDF。

回答

0

得到了一些想法从以下链接

http://www.codeproject.com/Tips/598424/How-to-Silently-Print-PDFs-using-Adobe-Reader-and

发送PDF到Adobe Reader打印....

public static Boolean PrintPDFs(string pdfFileName) 
     { 
      try 
      { 
       Process proc = new Process(); 
       proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
       proc.StartInfo.Verb = "print"; 

       //Define location of adobe reader/command line 
       //switches to launch adobe in "print" mode 
       proc.StartInfo.FileName = 
        @"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe"; 
       proc.StartInfo.Arguments = String.Format(@"/p /h {0}", pdfFileName); 
       proc.StartInfo.UseShellExecute = false; 
       proc.StartInfo.CreateNoWindow = true; 

       proc.Start(); 
       proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
       if (proc.HasExited == false) 
       { 
        proc.WaitForExit(10000); 
       } 

       proc.EnableRaisingEvents = true; 

       proc.Close(); 
       KillAdobe("AcroRd32"); 
       return true; 
      } 
      catch 
      { 
       return false; 
      } 
     } 
1

我觉得this MSDN article给出了一个很好的解决你的问题

+0

它不工作,但有一些想法 – Athul