Introduction
I use Crystal Reports 9 in my project. I once encountered an issue with printing a report. Then, I searched the Internet and found a code from this website that showed me how to send a report to the printer without previewing it, but the code did not allow me to choose the printer. In this article, I have customized the code to use a Print Dialog to choose the printer.
Using the code
I use the Print Dialog to get the printer name. Then, I assign it to the report. To print the report, I use the method:
Collapse | Copy Code
crReportDocument.PrintToPrinter(nCopy, false, sPage, ePage);
to send the data from the report to the printer.
The code below shows how to choose the printer to print the report:
Collapse | Copy Code
private void button2_Click(object sender, System.EventArgs e)
{
//Open the PrintDialog
this.printDialog1.Document = this.printDocument1;
DialogResult dr = this.printDialog1.ShowDialog();
if(dr == DialogResult.OK)
{
//Get the Copy times
int nCopy = this.printDocument1.PrinterSettings.Copies;
//Get the number of Start Page
int sPage = this.printDocument1.PrinterSettings.FromPage;
//Get the number of End Page
int ePage = this.printDocument1.PrinterSettings.ToPage;
//Get the printer name
string PrinterName = this.printDocument1.PrinterSettings.PrinterName;
crReportDocument = new ReportDocument();
//Create an instance of a report
crReportDocument = new Chart();
try
{
//Set the printer name to print the report to. By default the sample
//report does not have a defult printer specified. This will tell the
//engine to use the specified printer to print the report. Print out
//a test page (from Printer properties) to get the correct value.
crReportDocument.PrintOptions.PrinterName = PrinterName;
//Start the printing process. Provide details of the print job
//using the arguments.
crReportDocument.PrintToPrinter(nCopy, false, sPage, ePage);
//Let the user know that the print job is completed
MessageBox.Show("Report finished printing!");
}
catch(Exception err)
{
MessageBox.Show(err.ToString());
}
}
}
Points of Interest
I think the important thing in this article is it shows how to get the names of printers in your computer or your local network.
No comments:
Post a Comment