Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

Printing 2 copies in no-sorted order

edited February 2008 in General
Hi NG,

we are looking for a solution to print a let's say 3 page report in 2
copies.
The special thing is that we will use two bins for this as the paper is
chemically prepared for pushing writing on the top page to the behind copy.
This means we have to print the 6 pages in the following order:

page 1 from bin A
page 1 from bin B
page 2 from bin A
page 2 from bin B
page 3 from bin A
page 3 from bin B

I tried some things but all does not lead to the result in question.
Any idea how to do this in an elegant way?
Thanks for any feedback!

Stephan

Comments

  • edited February 2008
    Hi Stephan,

    Take a look at the article below. This shows how to print each page from a
    different bin. In your case you may need to create a separate field to keep
    track of which copy is being printed.

    --------------------------------------------
    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:

    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:

    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;


    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    "Stephan Leiwering, AdvanTex Software"
    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited February 2008
    Nico,

    thanks for the hint.
    Back to my original question:
    I guess that you want to set
    Report.PrinterSetup.Copies := 2;
    Report.PrinterSetup.Collation := False;
    I will give that a try.

    One more thing:
    The printers in question have a stapler to permanently combine the pages of
    one print job.
    Are you aware how to trigger those "printing" options through RB?

    Thanks for your support,

    Stephan


  • edited February 2008
    Nico,

    I just gave it a try and printed from Word with a PCL driver into a file and
    asked for 2 copies without sorting.
    In the file I saw that the data was only included once.
    This would bring me to the point that printing in my desired order would not
    be possible, am I wrong?


    There is no option to get in between the 2 copies I guess.
    Any more ideas?
    Thanks again,

    Stephan
  • edited February 2008
    Hi Stephan,

    The OnStartPage event fires between every page printed (copy or not). You
    should be able to use this event to define which bin each piece of paper
    comes from. As I mentioned in my previous post, you will need to keep track
    of how many actual pages have been printed to monitor which copy is being
    printed. This could be an integer field that is incremented each time the
    OnStartPage fires.

    For instance, once you enter the OnStartPage, if FCopy = 2 and
    Report.AbsolutePageNo = 1, then you know this is the second copy of page one
    and you should change the bin to B.

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    "Stephan Leiwering, AdvanTex Software"
    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
This discussion has been closed.