Nepage without printing an empty page?
Hello,
is it possible to tell the printer to add/skip a new page for duplex print without sending a *blank* page? One of my customers uses a printing system where the printed pages are count and printing blank pages are counted pages.
At the moment I publish the pages to a device and add an empty page to the device where I have to skip a page - but this leads to the wrong counted pages. Here a "SkipPage" method would be great.
Thank you,
Michael
is it possible to tell the printer to add/skip a new page for duplex print without sending a *blank* page? One of my customers uses a printing system where the printed pages are count and printing blank pages are counted pages.
At the moment I publish the pages to a device and add an empty page to the device where I have to skip a page - but this leads to the wrong counted pages. Here a "SkipPage" method would be great.
Thank you,
Michael
This discussion has been closed.
Comments
There is no built-in way with ReportBuilder to add a page but skip
counting it (PageCount). You might be able to create your own count
variable that keeps manual track of the actual printed pages sent to the
printer.
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
thank you for your reply! I think, I did not express myself very well. I need to tell the device letting the printer skip an empty page so that a new page of my report starts on a new sheet of paper on a duplex enabled printer.
In ReportBuilder it would be possible to manually add blank TppPage
objects to the list after each normal page is generated effectively
removing the duplex feature.
The effect you are after would also be solved by simply setting the
PrinterSetup.Duplex to dpNone.
Take a look at the following article which shows some of the concepts
you would need to employ to add a blank page after each report page.
Steps 1,2,3, and 5 are necessary. Step 2 would be where the empty
page(s) are added to the list.
http://www.digital-metaphors.com/rbWiki/Delphi_Code/Layouts/How_To...Create_a_Spread_Sheet_Style_Report
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
Yes. To fully print a sheet of paper I need to print two pages. One of my customers leases a printer which is payed by *printed* pages. So each single page costs. Regardless if it is a black page or a white page. When I *print* a page, it generates costs. Additionally the printer is a duplex printer. Some pages have to start on an even page number (= new sheet of paper). To get to the new sheet of paper I have to print an empty page or tell the reporting system to skip a printer page.
Now I am looking for a command telling the printer to "skip the page because it will be empty anyway". This would not cause the printer to increase the print count and the costs. My customer prints several hundreds of tousands pages a year ...
Best regards,
Michael
to a good PCL command reference. Search for Eject.
http://www.pclviewer.com/resources/reference/
The OnPrinterDeviceStateChange event can be used to send printer escape
codes. For details on using this event, access the RBuilder help, select the
TppProducer topic and then navigate to the OnPrinterDeviceStateChange
event.
The ppPCL.pas unit contains static classes that encapsulate many common PCL
commands. However we do not currently have the Eject command defined. This
is something we can add for a future release.
-
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
mode, but to eject a page instead of reloading and printing a 'blank'
sheet on 'even' side.
I only have spurious access to the actual printers (stupidly expensive
colour devices with fickle drivers), so need to get some ideas before
testing...
Will the 'eject' be interpreted as 'page was printed'?
That is, if in OnPrinterDeviceStateChange I test for:
if (
(aStateChange = dsBeforeStartPage) and
(NeedToEjectThisPage)
)
then ppReport1.Printer.SendEscape('eject escape code here');
Is there anything else that needs to be sent to ppReport to inform it
that the page is complete?
I'm concerned it will eject, then just print the blank on next page
anyway..
If the ejected 'blank' is part of a subReport - how might I detect that
the given printed page is from the subReport? (is there a way, or am I
setting flags in 'OnStartPage' and/or BeforePrint?).
Thanks!
EdB
page that is printing on the front side. ReportBuilder is just generating
pages for the report - the same pages you see in preview. Each page when
drawn to the printer uses a Printer.StartPage/EndPage Win API command. When
duplexing, the printer will print Page 1 on one side and Page 2 on the other
side, rather than print Page 1 eject paper, Page 2 eject paper, etc.
-
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com