Page 1 of 1

Printing multiple copies with collate

Posted: Mon Feb 06, 2006 10:58 pm
by TAG
I cannot get the printing of multiple copies with collation to work. The output does not collate. I get the multiple copies, but pages are together.

I am printing to a network printer, could that cause the problem?

I can fix with a loop in my code, I was just wondering if there is a problem printing to network printers.

Posted: Tue Feb 07, 2006 5:57 pm
by Sergey Tkachenko
Do you call Print (or PrintPages) method with the specified numbers of copies and collation flag?

A cycle in PrintPages handles collation:

Code: Select all

if Collate then
     for copyno:= 1 to Copies do
       for i := firstPgNo to lastPgNo do
       begin
         DrawPage(i, Printer.Canvas,False,False);
         DoOnPrinting(i, rvpsProceeding);
         if not ((i=lastPgNo) and (copyno=Copies)) then Printer.NewPage;
       end
   else
     for i := firstPgNo to lastPgNo do
       for copyno:= 1 to Copies do
       begin
         DrawPage(i, Printer.Canvas,False,False);
         DoOnPrinting(i, rvpsProceeding);
         if not ((i=lastPgNo) and (copyno=Copies)) then Printer.NewPage;
       end;
If the printer supports collation ((pcCopies in Printer.Capabilities) and (pcCollation in Printer.Capabilities)), trichview sets:
Printer.Copies := Copies;
Copies=1;
i.e. allows printer to handle collation itself.
I do not know, may be this printer mistakenly reports that it supports collation, but really it does not?