If you need to print particular pages of the report in several copies, we have to use an encoding. You can configure printing properties from the user application code, as well as manually in the print dialog box. This enables you to choose particular pages of the report and set a number of copies. However, the thing is that you can set the number of copies only of all pages to be printed. That’s why we’ll have to split the printing procedure into steps to reach a goal.
Let’s say that you need to print three copies of the second page and one copy of the rest of the pages. So we’ll split the procedure into two steps: printing the second page and the rest of the pages.
//We create a report var report = new Report(); //We create a data source DataSet data = new DataSet(); //We download the data from the file data.ReadXml("~/nwind.xml"); //We register the data source in the report report.RegisterData(data, "NorthWind"); //We download the report template report.Load("~/Master-Detail.frx"); //We prepare the report report.Prepare(); //We choose the second page of the report report.PrintSettings.PageNumbers = "2"; //We set a number of copies report.PrintSettings.Copies = 3; //We hide the print dialog box report.PrintSettings.ShowDialog = false; //We sent the report to print report.Print(); //We repeat the same steps for the rest of the pages of the report report.PrintSettings.PageNumbers = "1, 3, 4, 5"; report.PrintSettings.Copies = 1; report.Print();
Thus, we can print the necessary pages apart from the rest. The only disadvantage of the above-mentioned code is that the printed pages will be out of order. If you still need to print the pages in order, you’ll have to split the procedure into three steps: printing the first page, the second page and the rest of the pages of the report.