TECH TIP: Selecting Paper Bins for Each Page
Sometimes you may want to print the first page of a report to the manual bin and then print the remaining pages to the default bin.
You can use the Report.OnStartPage event to set the bin for any page.
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
procedure TForm1.ppReport1OnStartPageEvent(Sender:TObject); var lsBinName: String; begin if ppReport1.AbsolutePageNo = 1 then lsBinName := ppReport1.PrinterSetup.BinNames[3] else lsBinName := ppReport1.PrinterSetup.BinNames[1]; ppReport1.Engine.Page.PrinterSetup.BinName := lsBinName; end; |
Note: The above example assumes the manual bin is 4th in the list (remember its a 0 based index). To account for different print drivers, you could search for the ‘manual’ bin in code by performing a search on the printer’s available bin names:
1 2 3 4 5 6 7 |
for liBin := 0 to ppReport1.PrinterSetup.BinNames.Count-1 do if Pos('manual', ppReport1.PrinterSetup.BinNames[liBin]) > 0 then begin lsBinName := ppReport1.PrinterSetup.BinNames[liBin]; break; end; |