Home | Tips | Library | Other Authors | Other WP Sites | Writer's Links | Contact | Site Map

Barry MacDonnell's
Toolbox for WordPerfect

Macros, tips, and templates for Corel® WordPerfect® for Windows®
© Copyright 1996-2008 by Barry MacDonnell. All Rights Reserved.

Page updated Jul 23, 2008
WordPerfect Tips
Main tips page | Browse tips

Print your letterhead page from one printer tray, and second and subsequent pages (or envelopes) from another tray or slot

  • How WordPerfect "talks" to your printer's trays
  • "Two-tray printing"
  • To print all pages of the current document from the manual feed slot, see below.

Related information:

How WordPerfect "talks" to your
printer's trays and manual feed slot

Unlike with other software, the printer tray (or manual feed slot) that a page is printed from is specified in WordPerfect's Format, Page, Page Setup dialog -- not in the printer's Properties dialog (which you can get to via WordPerfect's File, Print dialog).

By way of further explanation, here is a quote from Charles Rossiter, a Corel C_Tech (WPOffice2002-other newgroup, 06/02/03):

"WordPerfect does not use the tray specified in the printer [Properties] settings; if it did, it would lose its ability to mix any number of page size/types within a single document, as almost all programs relying on the Windows printer driver are limited to one or, at most two, paper size/types in a single print job.

To set paper selection in WordPerfect, you have to use Format, Page Setup, switch to showing Printer Page Types, and define a paper size/type for each paper source. For example, if you have letterhead that pulls from tray 1 and bond that pulls from tray 3, you would create two different paper size/types such as 'Letter' and 'Bond', with almost-identical definitions except for the paper source.

This means you can mix Letter, Bond, landscape forms, A4, etc. etc. within a single document and not have to set anything on the printer properties itself. [In fact, on those printers having an 'NT Forms' tab in the printer properties, HP specifically says to not use that feature with software that is capable of pulling mixed forms, as it interferes with the software working properly.]"

[Ed.: This also means you can use different page definitions to select different printer trays for a single type of paper for the entire document. The methods described below do not require that two trays be used for any given document; they merely illustrate how you can achieve this result.]

WordPerfect's Format, Page, Page Setup produces these "page definitions" (or "paper definitions") -- i.e., the physical paper sizes, label types, printer trays to use, etc. -- for the currently selected printer (in the File, Print dialog). These definitions are then stored in the local computer's Windows Registry.

When you open a new, blank document the document will make use of the page definition (e.g., "Letter" or "A4") specified in the template on which the document is based (usually, this is the default template). You can create -- and employ -- as many new, custom page definitions as you need for different purposes, as indicated above and also as demonstrated in the example in the next section below.

New (i.e., non-default) page definitions show up as [Paper Sz/Typ] format codes when you (or a macro) insert one or more of them into the document, such as when you choose legal size for your current task, or open a sheet of labels, or append an envelope to the document. These codes are most often found at the top of the document or perhaps at the top of a specific page; but they could be placed inside a [Delay] code where they would take effect after the specified number of pages.

Wherever they are located, it is worth emphasizing that they set the page dimensions and the paper source (i.e., the printer tray or manual feed slot) to use. Most often, this takes effect for all pages from that point forward, but some page definitions might be set to take effect for just the current page.

Notes

  • To view the specific setup for your letters (for example), click Format, Page, Page Setup, and choose the standard Letter page definition. Next, depending on your version of WordPerfect, either (a) click Edit, or (b) click the Options button then click Edit, Both. When the editing dialog opens, you will see a Source drop list. Normally this is set to "Default" or "Normal," but -- depending on your specific printer -- there will be other options available, such as Upper Tray, Manual Feed, etc. This list is where you tell WordPerfect which printer tray to use.
    • For future reference, you can always make a copy of the current page definition and modify it instead of modifying the default page definition or creating a new one from scratch (though the latter is very easy to do): Just use the New or Options button to create a new page definition. Then use the copy (click Format, Page, Page Setup) with any document that requires printing to a specific tray. See the "Two-tray printing" sections below for more information.
  • WordPerfect "remembers" the last printer used (but just for the current session). Hence, if you have more than one printer you might need to select another printer prior to a new print job.
  • WordPerfect communicates page definitions and other information with the printer driver, which in turn communicates with the physical printer. This is why you must have at least a printer driver installed -- even if the printer is turned off -- before WordPerfect can operate properly. WordPerfect makes heavier use of the printer driver than most other programs, so that it produces true screen rendering of your document ("WYSIWYG" -- what you see is what you get). [For some information about common printer problems, see here.]

Page Top

"Two-tray printing" - Print the first page from one printer tray and the second and subsequent pages from another tray

There are several methods you can use to accomplish this from inside WordPerfect. The following two methods -- modify your template or record a simple macro (including a user message) -- seem to be the easiest.

Example:

Assume you want the a letterhead sheet to print from your default tray and the letter's second and subsequent sheets (if any) to print from another tray.

You first need to create a separate page definition for the non-letterhead tray, if it does not yet exist in WordPerfect. Then, to automate things, you can use the definition in a template or a macro.

Here's how:

Step 1

Create a new page definition for "second pages". (If you already have a second page definition, skip this step.)

  • Be sure you have the desired printer selected in the File, Print dialog. Then click Format, Page, Page Setup.
  • Then, depending on your version of WordPerfect, click
    • New [WP8], or
    • Options, New [WP9], or
    • Add [WP10/11/12/X3]
  • Give the page definition a new name (e.g., "Second pages"), and choose a Type and Size. (You can also set a vertical and horizontal printing adjustment later, by editing the definition.)
  • Click in the Source field, and select the second printer tray to use.
  • [WP9 and later:] Set the "Show page size" to Current printer only.
  • Verify the other settings, then click OK twice to return to the main WordPerfect document window.

Step 2

Decide whether to modify your default template (or other template) so that it will automatically use the new "second page" definition for all new documents based on that template, or use a macro to enter these defintions whenever you need them. Then choose either Step 3 - Method A, or Step 3 - Method B below.

Step 3 - Method A:  MODIFY A TEMPLATE

  • Click File, New..., and choose the template's name from the list. (Note that the default template for all new documents is listed under Custom WP Templates and is named "Create a blank document.")
  • Click the Options button and choose Edit WP Template.
  • The template opens for editing.
  • Place the cursor at the top of the template.
    • NOTES:
    • If you wish to force the template to use a particular ("explicit") page defintion for page 1 (which is required for merging multi-page documents), you can click Format, Page, Page Setup and select the appropriate definition for the first page. There is no harm in using an explicit page definition for page 1 in normal documents as well as in merge forms.
    • If you wish to force page numbering to always start with "1" in any document, even if the document is appended to another document that also uses page numbers, you can do so with a trick described here in reference to merges. Since you cannot insert a page number "1" code on page 1 of a document (WordPerfect will ignored your attempts since you are already on page 1), you have to first set the page numbers to another value inside the document's initial style code. Then you can add a new page number value code ("1") on page 1.
  • Now you need to insert a delay code to tell WordPerfect to start a new page definition on the next page (if there is one).
    • Click on Format, Page, Delay Codes. Accept the number of pages to skip (i.e., delay) as "1," then click OK. A new window entitled "Define Delay Codes" opens. [For more information on using delay codes, see WordPerfect's online Help (F1 key).]
    • Click the Page Size button on the property bar (or click Format, Page, Page Setup). Choose the new second page definition that you created in Step 1 above. Click on Apply, then OK.
    • Back in the Define Delay Codes window, you can make other formatting changes that will take effect on the second and subsequent pages of a doument based on this template, such as changing margins or changing or adding headers or footers. (See the Note and Tip below.)
    • When finished, click Close to return to the template.
  • Click File, Close and answer "Yes" to "Save changes...?" to close the template and return to normal editing.

When you start a new letter based on this template, the delay code will activate if you have two or more pages in the document.

Later, if you want to modify the page settings for the second page defintion, simply edit the template, open Reveal Codes, and double-click the [Delay: 1] code to open the Define Delay Codes window.

  • Note for users of WP10-WPX3: To set all margins back to 1.0" in the Define Delay Codes window, set at least one margin to some other value, then change the margins back to 1.0". This is a workaround for a small bug in these versions.
  • Tip: You can hide the [Delay] code inside the template's initial style. This prevents it from being "pushed down" by a user if the cursor is above the [Delay] code in the document -- something that is easy to do if Reveal Codes is not used. See Footnote 1 below.

Page Top

Step 3 - Method B RECORD A MACRO

Recording the basic macro:

To record a macro to place the "second page" definition code in the current document, open any sample document to work in temporarily. (You may want to decide if secondary pages will have different formatting, margin settings, etc., and jot down the types of formatting to apply to them.)

  • Click on Tools, Macro, Record. Give the new macro a name (e.g., "Second Pages") and click Record.
  • Begin by putting the cursor at the top of the document.
    • NOTE: If you wish to force the template to use a particular ("explicit") page defintion for page 1 (which is required for merging multi-page documents), you can click Format, Page, Page Setup and select the appropriate definition for the first page. (Alternatively, you can edit the macro and insert the appropriate PaperSizeSelect command in it immediately after the PosDocTop command.) There is no harm in using an explicit page definition for page 1 in normal documents as well as in merge forms.
  • Now you will need to insert a delay code to tell WordPerfect to start a new page definition on the next page (but only if there is a next page).
    • Click on Format, Page, Delay Codes. Accept the number of pages to skip (i.e., delay) as "1," then click OK. A new window entitled "Define Delay Codes" opens. [For more information on using delay codes, see WordPerfect's online Help (F1 key).]
    • Click the Page Size button on the property bar (or click Format, Page, Page Setup). Choose the new second page definition that you created in Step 1 above. You can choose a new page orientation (Portrait or Landscape) if desired.
    • Click on OK.
    • Back in the Define Delay Codes window, you can change margins or make other formatting changes that will take effect on the second and subsequent pages of a doument based on this template, such as changing margins or changing or adding headers or footers. (See the Note and Tip in Method A above, which also apply to this macro recording method.)
    • Click the Close button on the property bar to exit from the Define Delayed Codes window.
  • OPTIONAL: If you want to always print two copies, use File, Print and specify two copies, then Print the document to record these commands in the macro. Close the Print dialog after printing if it is still open.
  • Click the "Stop macro..." button ( it has a solid black square icon or it may have an audiocassette icon) at the left side of the Macro Toolbar.

The macro has been recorded and you can assign it to a toolbar button or keystroke for easy access. Close the sample document without saving any changes, re-open it, and test the macro. It should insert a [Delay: 1] code at the top (and a [Paper Sz/Typ] code, if you chose to set an explicit definition for page 1). If the sample document has more than one page, the second and subsequent pages should print to the other printer tray.

From now on, if you need to print an old multi-page letter to different trays and it doesn't have these codes in it, you can play the macro, print the letter, then remove the Delay code if desired (or close the letter without saving the Delay code). Playing the macro in a new document will, of course, insert the Delay code, which can be saved along with the new letter's contents.

At any later time, you can double-click the [Delay] code in Reveal Codes to open the Define Delayed Codes window and modify the second page formatting, such as adding or changing headers or footers. (See the Note and Tip in Method A above, which also apply to this macro recording method.)

Page Top

Tweaking the macro #1 - basic revisions:

The recorded macro can be edited (like any other WordPerfect document) and modified to add a defintion for Page 1 to force a particular or "explicit" page definition for the first page, add a Print command, and (optionally) undo the insertion of the Delay code.

Here's an example of such a recorded macro, but with -

  • extraneous commands and command parameter labels removed for clarity (later versions of WordPerfect add some codes that may not be needed),
  • a PaperSizeSelect code deliberately inserted for page 1 (the "Letter1" size)
  • an optional command to print 2 copies, and
  • an optional command to Undo the codes that were added to the document, in case you don't need or want them in future print jobs.

Important: You will need to replace "Letter1" and "Letter2" with the actual names of two page definitions on your system as shown in Format, Page, Page Setup. Be sure to retain the double quote marks.

// Macro begins -
// Start at top of document:
PosDocTop
RevealCodes (On!)
PaperSizeSelect ("
Letter1") // (for 1st page)
DelayCodes (1) // (skips a page)
PaperSizeSelect ("
Letter2") // (for p. 2+)
// Closes Define Delayed Codes window:
SubstructureExit
PrintCopies (2) // (<= OPTIONAL)
Print (FullDocument!)
Undo // (<=OPTIONAL: removes [Delay])
// Macro ends

See other tweaks you can make, below.

To copy the macro code above into WordPerfect, select the text from beginning to end and copy (Ctrl+C) it to the Windows clipboard. Open a blank document in WordPerfect and click on Tools, Macro, Macro Toolbar. Press the right arrow key once to move past the line numbering code, then click on Edit, Paste Special, Unformatted Text to paste the macro code into the WP document. Make any required changes. Save it with the Save & Compile button on the Macro Toolbar. This will save the macro to your default macros folder.

Page Top

Tweaking the macro #2 - asking the user for the number of copies at print time:

With the simple edition of a "code snippet" (here, shown in dark red), you can now -

  • add a page definition for page 1;
  • add a page definition for page 2 (if there is a page 2) and all following pages;
  • pop a message that asks the user for the number of documents to print (the message requires that the user enter a number), and reminds them to add the proper paper to each tray;
  • prints the desired number of copies of the full document; and
  • optionally uses Edit, Undo to remove the page definitions from the document (if you don't want this optional step, simply remove the Undo command).

TIP: You can even use such a macro in a template that automatically plays the macro only at print time. The macro is then called a template macro. See below.

// Macro begins -
PosDocTop
RevealCodes (On!)
PaperSizeSelect ("
Letter1")
DelayCodes (1)
PaperSizeSelect ("
Letter2")
SubstructureExit

Display (On!)
OnCancel (End@)
HRt:=NToC(0F90Ah)
Label (Start@)

GetNumber (vCopies;
"Enter the number of copies"+HRt+
"of this document to print." +HRt+HRt+
"Be sure to load the trays"+HRt+
"with the proper paper." +HRt+HRt+
"Press Cancel to exit."; "Ready to Print ...")

If (vCopies < 1) // If less than "1"

   Messagebox (; "Error";
   "You must enter a whole number"+HRt+
   "greater than zero."; IconWarning!)

   vCopies:=""

   Go (Start@)

Endif

PrintCopies (vCopies)
Print (FullDocument!)
Undo // (OPTIONAL: removes [Delay] codes)
Label(End@)
// Macro ends

Using the macro in a template:
In addition to using the above macro as a "stand alone" (file) macro, you can associate it with the
PRE PRINT template trigger inside a template. Then, each time you go to print the document (and as long as the template itself is still on your system), the template macro will fire up and display the message, etc.

If you need help creating such template macros or associating template macros with trigger events, see "Automating WordPerfect Templates" on the Tips page.

For more on template trigger events, see "'Trigger' a macro from inside a template to play automatically at specific times."

To copy the macro code above into WordPerfect, select the text from beginning to end and copy (Ctrl+C) it to the Windows clipboard. Open a blank document in WordPerfect and click on Tools, Macro, Macro Toolbar. Press the right arrow key once to move past the line numbering code, then click on Edit, Paste Special, Unformatted Text to paste the macro code into the WP document. Make any required changes. Save it with the Save & Compile button on the Macro Toolbar. This will save the macro to your default macros folder.

Merge considerations:

The procedure used in the above macros -- i.e., using an explicit page definition with PaperSizeSelect for both the first page and all secondary pages -- is needed to merge multi-page letters using two trays.

If you plan on using the macro to set up a merge form so that it will pull paper from the appropriate printer tray or bin, see "Merging multiple-page letters using letterhead paper for page 1 and plain paper for subsequent pages."

How some documents might be affected by these macros:

If you open an existing document and immediately play one of these macros, it will insert page definition and delay codes. This is by design.

However, even it you retain the macro command to Undo these code insertions, as far as WordPerfect is concerned the document will have been modified, albeit harmlessly. You will see a standard message about saving changes when you close the document -- even if you think you made no changes. If you have really not made any other changes you can close the document without saving it.

This is something to inform all users about, so they know why the document was mysteriously "modified."

REMINDER: WordPerfect "remembers" (just for the current session) the last printer used. So you should either deliberately select the desired printer before playing a macro such as those above, or include macro commands that set the printer and (optionally) return the selected printer to the user's preference. The macro command, PrinterSelectByName, can be used for this (note that the name must be exactly the same, including case, as shown in the File, Printer dialog).

TIP: Klaus Pfeiffer's macro, TempPrinter.wcm, does this trick. See his post (and download the macro) on the WordPerfect Universe Code Snippets forum, here. Klaus uses the PrinterSelectByName command to first store the name of the current printer (presumably, the user's preferred printer), and then restores the printer selection to that printer after the macro has printed something:

vCurrPrinter=PrinterSelectByName
// ... the macro executes other commands
// and then select a new printer with PrtinterSelectByName
// then it restores the original printer selection:
PrinterSelectByName (PrinterName: vCurrPrinter)

Page Top

Print all pages of the current document from the manual feed slot

If you have a stack of blank paper in your printer's default tray, and you try to feed an entire document though the manual feed slot, page by page, you'll probably find that you have to be quick about feeding paper into the manual slot or else the printer will grab the next page from the default tray.

To solve this minor problem, just create a new page definition that tells your printer to use manual feed for all pages. Then insert the new definition at the top of the document with Format, Page, Page Setup (or use a macro such as described above).

Here's how to create a page definition to print all pages from the manual feed slot.

With your printer selected in File, Print -

  • Click on Format, Page, Page Setup.
  • Select the normal definition (e.g., "Letter") to make a copy of it.
  • Click the "Add" button (or the "New" button in WP8, or "Options, New" in WP9).
  • Give the new definition a name (e.g., Letter-Manual).
  • Change the Type of paper stock, if necessary.
  • In the Source list, select Manual Feed.
  • Click OK.

Use this new page definition at the very top of the document you want to print via the manual feed slot by clicking Format, Page, Page Setup, choose "Letter-Manual" and click OK. A new [Paper Sz/Typ] code will appear in Reveal Codes to control printing for the current document.

Making copies of a page setup ("page definition") is a handy way to select just those features you need during a particular print run.

See also the top of this page for more information.

Page Top


Footnote 1: Hiding Delay Codes

Here's a tip to let you "hide" a [Delay] code so it is less likely to be moved or deleted accidentally: Open Reveal Codes, select just the new [Delay] code (this is most easily done with <Shift+arrow>), and cut it to the clipboard with <Ctrl+X>. Then double-click the initial [Open Style: DocumentStyle] code at the very top of the document; this opens the Style Editor; paste the [Delay Code] into the Contents field, then click OK. (Just remember to look inside the initial style code if you need to revise or delete the [Delay] code!)

  • You can use more than one Delay code in the document's initial style.
  • Caution: Do not try to create a [Delay] code for a Header, Footer, or Watermark directly inside the document's (or template's) initial style's Styles Editor by using the menu in the Styles Editor dialog, or the program may "hang" on you. Instead, either cut the [Delay] code from the document and paste into the Style Editor as explained above, or copy an existing [Delay] code from another document and paste it into the Styles Editor.
  • Macro writers: You can easily incorporate formatting codes inside a document's (or template's) initial style with a macro. See here for an example.