Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3242
  • Last Modified:

Programmatically printing from Report Viewer c#

I have for example a ReportViewer. I have a loop which will go through the report populating it then exporting to pdf and doing the next. I would like to know if anyone knows a way of forcing it to print without a dialogue box?

Cheers
0
KazooSoft
Asked:
KazooSoft
  • 7
  • 4
1 Solution
 
LeDaoukCommented:
this code will open the pdf print and close
Dim MyProcess As New Process
        MyProcess.StartInfo.CreateNoWindow = False
        MyProcess.StartInfo.Verb = "print"
        MyProcess.StartInfo.FileName = "C:\file.pdf "
        MyProcess.Start()
        MyProcess.WaitForExit(10000)
        MyProcess.CloseMainWindow()
        MyProcess.Close()

Open in new window

0
 
KazooSoftAuthor Commented:
Do you have that in C#? I think I will have to do it that way. Export them all to PDF then print them. Then delete them.
0
 
LeDaoukCommented:

Process MyProcess = new Process();
MyProcess.StartInfo.CreateNoWindow = false;
MyProcess.StartInfo.Verb = "print";
MyProcess.StartInfo.FileName = "C:\\file.pdf ";
MyProcess.Start();
MyProcess.WaitForExit(10000);
MyProcess.CloseMainWindow();
MyProcess.Close();

Open in new window

0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
LeDaoukCommented:
and always use this link to convert:
http://www.developerfusion.com/tools/convert/vb-to-csharp/
0
 
LeDaoukCommented:
use this code in the report viewer form, it will solve your issue
Private Sub frm_ReportViewer_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
        Dim warnings As Warning() = Nothing
        Dim streamids As String() = Nothing
        Dim mimeType As String = Nothing
        Dim encoding As String = Nothing
        Dim extension As String = Nothing
        Dim bytes As Byte()
        Dim FileName As String

       



        bytes = ReportViewer1.LocalReport.Render("Pdf", _
          Nothing, mimeType, _
            encoding, extension, streamids, warnings)
        FileName = "PrintOut" & Format(Now, "yyyyMMddhhmmss") & ".pdf"
        Dim fs As New FileStream("C:\file.pdf", FileMode.Create)
        fs.Write(bytes, 0, bytes.Length)
        fs.Close()

        Dim MyProcess As New Process
        MyProcess.StartInfo.CreateNoWindow = False
        MyProcess.StartInfo.Verb = "print"
        MyProcess.StartInfo.FileName = "C:\file.pdf"
        MyProcess.Start()
        MyProcess.WaitForExit(10000)
        MyProcess.CloseMainWindow()
        MyProcess.Close()


	 Try

            Dim strFileSize As String = ""
            Dim di As New IO.DirectoryInfo("c:\")
            Dim aryFi As IO.FileInfo() = di.GetFiles("file*.pdf")
            Dim fi As IO.FileInfo


            For Each fi In aryFi
                fi.Delete()
            Next
        Catch
        End Try

        Me.Close()
    End Sub

Open in new window

0
 
LeDaoukCommented:
as you can see filename in the code is to generate a file everytime you can use it instead of file.pdf
so it wil create printout....pdf and redelete it
0
 
KazooSoftAuthor Commented:
Ok I have converted this to C# but how to i suppress the PDF window?

Cheers
0
 
LeDaoukCommented:
Try

            Dim strFileSize As String = ""
            Dim di As New IO.DirectoryInfo("c:\")
            Dim aryFi As IO.FileInfo() = di.GetFiles("file*.pdf")
            Dim fi As IO.FileInfo


            For Each fi In aryFi
                fi.Delete()
            Next
        Catch
        End Try
 is deleting the file at the end of the sub
0
 
KazooSoftAuthor Commented:
That works perfectly. But it keeps spamming the user with a lot of PDF windows until we wait for them to close. Is there a way of getting it to run the chosen PDF reading in the background? out of sight?
0
 
LeDaoukCommented:
MyProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
and hide the form
0
 
KazooSoftAuthor Commented:
Awesome results thank you for all your help!
0

Featured Post

Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

  • 7
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now