Re: Printing PCL in MPE (205 Views)
Occasional Visitor
Bryan Guidroz_1
Posts: 3
Registered: ‎08-27-2004
Message 1 of 4 (205 Views)
Accepted Solution

Printing PCL in MPE

I have a PCL macro that I want to send to a printer, but for the form to print correctly, every line of PCL has to be less than some number. I’m guessing 132 characters, but I have been using 80 characters.
For example, each line of my PCL looks like this:

&f63y0X &lO &l8c6d66pe66fL &kG )U )s1p8vs1b4T
&a336v4992H *c4.8v600hP
&a936v2214H *c4.8v2700hP
&a936v5424H *c4.8v132hP
&a702v408H *c4.8v5160hP
&a936v966H *c4.8v450hP

I am looking for a way around this 80 character (or 132 character) limit. I need the PCL to be a continuous. For example, the above would look like this:

&f63y0X &lO &l8c6d66pe66fL &kG )U )s1p8vs1b4T &a336v4992H *c4.8v600hP &a936v2214H *c4.8v270hP &a936v5424H *c4.8v132hP &a702v408H *c4.8v5160hP &a936v966H *c4.8v450hP

When I transfer the PCL macro to MPE in this continuous format, the form prints incorrectly. If I limit each line of PCL to 80 characters, the form prints correctly. I’m not sure if I am transferring the file incorrectly, or if MPE requires this, or something else.

Any advice would be greatly appreciated.
Esteemed Contributor
Dan Clifford
Posts: 201
Registered: ‎03-25-1998
Message 2 of 4 (205 Views)

Re: Printing PCL in MPE


I don't know if you already have an answer for this but if not, this might help:

What are "setup files?" How are they created? What can they do? DocId: MPEKBRC00001819 Updated: 3/29/00 9:25:00 AM

What are "setup files?" How are they created? What can they do? What happens if a setup file is defined in NPCONFIG in the "global" and the "LDEV specific" entry simultaneously?

The following has been copied from Chapter 3 of the Native Mode Spooler Manual, which is available at The notes (in italics) have been added because of frequent questions about those topics.

Creating and Using Setup Files
Any user, regardless of their assigned capability, may create files containing customized setup strings (analogous to environment files) to specify the printer operating mode for network printers. Such files can be used in one of two ways: If you have system manager (SM) capability and therefore can edit NPCONFIG, you can name such a file as the setup_file for a particular printer LDEV so that it becomes the default. For example, the following entry in NPCONFIG specifies the setup file LJ4SISET.HPENV.SYS for LDEV 19:

19 (network_address =

setup_file = LJ4SISET.HPENV.SYS)If you do not have SM capability, you can create a setup file and direct the spooler to use it while printing a specific spool file by entering the ENV parameter in the FILE command or the (HP) FOPEN intrinsic. When you do so, the spooler assumes that the setup file defines the entire printing environment; that is, your setup file supercedes any other setup file specified in the NPCONFIG.PUB.SYS. For example:

FCOPY FROM=MYFILE;TO=*MYOUTThe MPE spooler expects the contents of setup files to be the raw data stream needed by the printer, either in bytestream or record-oriented format. Comments are not allowed. A bytestream file is sent "as is" to the printer. For record-oriented files, the spooler deletes any carriage control (CCTL) character, then trims leading and trailing blanks and concatenates records to arrive at the sequence sent to the printer.

If your printer supports PJL, the resulting data stream can include both PCL and PJL sequences, but they should be ordered so as to make sense to the printer.



Users are entirely responsible for the contents of setup files and their resulting effect on operation. The spooler does not interpret or alter them in any way (except to remove CCTL and blanks as described in this section). In particular, you should be familiar with PCL and PJL concepts as well as the features of your target printer before attempting to create a setup file.


The MPE/iX default environment
For backward compatibility, the MPE system default environment is landscape mode, courier font, 132 characters per line, 6 lines per inch, 60 printed lines per page with a three line top and bottom margin, and single-sided operation. This is often not appropriate for output printed on a cut sheet device such as the LaserJet 4Si. The following approach has been chosen to provide maximum flexibility, while not requiring individual attention for all non-default printing needs.

NOTE: "132 characters per line" can be misleading-- there is no such PCL command, and instead the spooler will send PCL to set pitch at 13 characters per inch: esc(s13H

The assumption is the line will be about 10 inches long, and then 13 characters per inch times (approximately)10 inches equals (approximately) 132 characters per line.

Setup strings
A "setup", or "setup string", is that sequence of (raw) PCL and/or PJL commands used to place the target printer in a specific operating mode. For example, the PCL sequence Esc& l 0O selects portrait mode, while Esc& l 1S selects duplex (long edge binding) operation.

You can include any valid PCL/PJL sequence, of any length, in your setup. It is sent just before the user data portion of the spool file and will be used to print the body of the report. Banner pages are printed using the default backward-compatible MPE/iX environment described earlier.

You enter setup strings into a text file with your editor of choice. If the resulting file is a bytestream file, it is incorporated without modification. If the file is a record-oriented file (fixed, variable, or undefined-length records), the spooler first removes any leading carriage control (CCTL) code in each record, then removes any leading or trailing blanks in the record, then concatenates whatever is left to form the final setup string.

NOTE: It is recommended that MPE's EDITOR be used to create setup files, as third-party editors can add unprintable formatting information into the file, which can confuse the printer, or cause unusual characters to be printed.

Setup file hierarchy
There are four hierarchical levels of setup available to network printer users:

An ENV file specification issued via the ENV= keyword in a FILE equation or in an (HP)FOPEN intrinsic. If you use the ENV statement, it is applied at the time the file is opened and it supersedes all other setup file specifications described below.
A global setup file specification in NPCONFIG.PUB.SYS, which applies to all network printers and is applied at print time.
An LDEV-specific setup file in NPCONFIG.PUB.SYS, which is applied at print time. Its contents are appended to any global setup file specification, adding to or overriding the global print setup information.
The default MPE/iX environment, which you cannot modify.
NOTE: Although it is not possible to modify "the default MPE/iX environment," it is possible to disable the spooler's use of that environment by specifying an environment file or setup file as shown in items 1, 2, and 3 above. The file must contain PCL, PJL, or nothing at all-- creating a "blank" setup file is used very often by the Response Center to "fix" the unwanted default environment (landscape, compressed pitch, and etc.)

If the spooler uses one or both of the setup files specified in NPCONFIG, the setup file(s) are attached when the file is printed, not when it is opened for printing. This means that if you preview the spool file using the SPIFF utility or other browser, you do not see default setup information. Also, any changes to either setup are reflected the next time the spool file is printed. The attributes are not bound to the spool file when it is created. When you direct output to a class such as LP, that designation is resolved to a specific LDEV (that is a member of that class) by the time the file is printed. It is that LDEV's setup file that the spooler uses.

Attaching setup files at print time also allows you to direct old archived spool files or spool files originally targeted for a non-network printer to a network printer. Such files simply inherit the current printing environment of the network printer.

If you specify a global or LDEV-specific setup file that does not exist, cannot be opened for read access, or returns an error while being accessed, the spooler posts a warning message to the console or Associated user and defers the spool file. If neither the global entry nor the LDEV-specific entry of NPCONFIG designates a setup file, the MPE system default environment is used.


Also, this note suggests using EDITOR if you create a setup file. Editor has a limitation on how long of a line you can enter. If you want to put all your PCL code on a single line you will have to use the continuation character which is a "&" for Editor.
Honored Contributor
Eric Sorensen_1
Posts: 573
Registered: ‎10-08-2000
Message 3 of 4 (205 Views)

Re: Printing PCL in MPE

Hello Bryan,

If you are using the MPE network spooler, and the printer is configured in SYSGEN or IOCONFIG, then the RSIZE determines the maximum record width. Default is 66 "words", and with 2 bytes per "word" this will allow no more than 132 characters per record (per line). You may change the RSIZE to a larger value, but the spooler's absolute maximum record width is something like 6000 (I am trying to find the actual limit....)
A problem well defined is half solved.
Occasional Visitor
Bryan Guidroz_1
Posts: 3
Registered: ‎08-27-2004
Message 4 of 4 (205 Views)

Re: Printing PCL in MPE

Thanks for the info... Using the ENV statement appears to have solved my problem... For example:


Where PCLELITD is my continuous (unbroken) PCL form... I transferred it as a binary file... I'm not going to close this thread just yet... but it looks like this will work... Thanks again...
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation.