<< Click to Display Table of Contents >> BeforePrintNewPage Event |
Is fired only while printing exactly before printing a new page. The event is useful to change the Device Control Propertieson-the-fly during printing. You may change all properties, except the device itself.
BeforePrintNewPage(
ByVal Page As Long,
long ResultingAction
)
Page
current page number that will be printed
ResultingAction
is a return-parameter, i.e. you can assign it one of the following values to control the resulting action of VPE:
Resulting Action |
Value |
PRINT_ACTION_OK |
0 |
PRINT_ACTION_ABORT |
1 |
Remarks:
Your application should return PRINT_ACTION_OK (zero) if it processes this message without changing a printing device's properties.
If a Device Control Property was changed, your application must return PRINT_ACTION_CHANGE ( = 1).
•If you change the Device Control Properties during the print job, you must reset them to the original values, when the print job has finished (see RequestPrint Event – ActiveX: with Action = PRINT_MSG_ABORT or Action = PRINT_MSG_END).
•Changing the properties (like DevPaperBin, DevOrientation, DevPaperFormat, etc.) during the print job doesn’t work with some (buggy) printer drivers, for example some fax drivers and the HP4 M Plus driver (the HP4 PS driver should work with the HP4 M Plus printer!).
•Some properties and methods don’t work with some printer drivers. For example "DevTTOption" doesn’t work with our HP4 and HP5 printer drivers on WfW 3.11 and NT 3.51, but it works with both drivers on Win95. This is a driver problem.
•Printer drivers are manufactured by vendors independent of IDEAL Software; we make no warranty, implied or otherwise, regarding these product’s performance or reliability.
•Win32s is not officially supported by VPE. The Device Control Properties do not work under Win32s.
Known Problems:
Changing any Device Control Properties during the print job disables Duplex Printing on PCL Printers
SYMPTOMS
When you change a Device Control Property during the print job, it appears to disable Duplex (double-sided) printing when the target printer is a (Hewlett Packard) PCL printer.
CAUSE
PCL printers treat a change in paper size as a new print job that requires the printer to be initialized. This causes the printer to eject any page that is currently in the printer. The PCL printer drivers for Windows assume that the page size has been changed when a Device Control Property is changed during the print job, unless the orientation of the page has changed.
RESOLUTION
To prevent having a page ejected when changing a Device Control Property during the print job, make sure that the function is called only between individual sheets of paper. Changing a Device Control Property before printing odd-numbered pages is sufficient for most applications that use duplex printing. However, some applications require that you change the page orientation on a page-by-page basis. In this case, you can change Device Control Properties between individual sheets of paper if the orientation has changed.
STATUS
This behavior is by design.
MORE INFORMATION
Note that when this problem occurs the print job continues and the sheets of paper are passed through the printer's duplexer, but the sheets are only printed on one side.
Because of the page size initialization requirement for PCL printers, Windows PCL drivers treat the change of Device Control Properties differently. These drivers allow only the orientation to change between the front and back pages of a sheet of paper. This means that the change of a Device Control Property will eject the page unless the orientation (and only the orientation) has changed from the previous page. Returning PRINT_ACTION_CHANGE although no Device Control Property has been changed causes the printer to eject the page.
Returning PRINT_ACTION_CHANGE although no Device Control Property has been changed is unnecessary. By doing so, you risk having a page ejected from the printer, which has a high probability of occurring.