please dont rip this site


PCL 6 is documented in the PCL XLTechnical Reference Manual (HP) which has been available from HP at and

This manual may confuse as much as it explains. For example, the sample on page 26 is very general and is not at all complete. It is missing the @PJL ENTER LANGUAGE="PCLXL" command and the Stream Header (Section 7, page 201) which for ASCII would be

' HP PCL-XL;2;0

or for an older printer you might use

' HP PCL-XL;1;1

The first character of that line specifies "Binding Format" which can be: "'" ASCII, ")" Binary (little endian) or "(" Binary (big endian). The single quote tells the printer that you want to send ASCII commands rather than Binary.

But not all printers will support ASCII (do any?) because it means they have to be able to parse and compile the command names rather than just interpret the single byte binary tokens. In other words, the printer has to be the compiler as well as the byte code interpreter. My 2300L, 4000, 4050, and 5500 will not accept that binding and I get a "Unsupported Binding" error.

Even in ASCII, you can't use all the names you are trying to use: Check page 24 at the bottom of the page... "The attribute identifiers in Figure 2-1 are represented by a name. The actual attribute identifier is a unique number from a set of attribute identifiers defined for the protocol."

Also, page 27 notes that the values that start with an e are integers as listed in Appendix G

If you want to do the ASCII binding, you really have to use the JetASM program to translate your labels to binary code. This program is only available to developers (as far as I know).

So you have to do binary. You need a binary editor and you will have to put out the binary sequences that would be produced by a PCL6 printer driver. There are - Values (Appendix G) - Attributes (Appendix E. Note: Appendix F has some typos) - Commands (Appendix C)

Note that all values and attributes are preceded by a "tag value" that indicates the type of value or attribute that follows. (Appendix D) e.g. a single byte value must be proceeded by a 0xC0 so to specify that you wish error reports to be printed, you must send 0xC0 0x02 0xF8 143 as part of the setup for the BeginSession command. The C0 says "this next byte is an unsigned value" then the 2 is accepted as that value. The F8 says "this next byte is an attribute ID" and the 143 (0x8F) is accepted as the attribute ErrorReport. This all has the effect of setting up an attribute - value pairing for the upcoming BeginSession command. Note that the BeginSession command has 3 required attribute - value pairs.

Since commands do not need a "tag value" you could say that the "tag values" for Values and Attributes are really commands that specify the loading of a value or attribute, but the difference is that commands must happen AFTER the attribute - value pairs are setup for that command and the "tag values" for Values or Attributes must come BEFORE the values or attributes they specify.

Your best bet for a working example file is to setup a PCL6 driver to print to file and then print a test page or something like that.



See also:

file: /Techref/language/pcl/6.htm, 5KB, , updated: 2012/6/7 15:57, local time: 2018/1/21 14:37,

 ©2018 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
Please DO link to this page! Digg it! / MAKE! / 

<A HREF=""> PCL 6 / PCL XL</A>

After you find an appropriate page, you are invited to your to this massmind site! (posts will be visible only to you before review) Just type in the box and press the Post button. (HTML welcomed, but not the <A tag: Instead, use the link box to link to another page. A tutorial is available Members can login to post directly, become page editors, and be credited for their posts.

Link? Put it here: 
if you want a response, please enter your email address: 
Attn spammers: All posts are reviewed before being made visible to anyone other than the poster.
Did you find what you needed?

  PICList 2018 contributors:
o List host: MIT, Site host, Top posters @20180121 David C Brown, Isaac M. Bavaresco, Manu Abraham, RussellMc, Van Horn, David, Dwayne Reid, Harold Hallikainen, James Cameron, Sean Breheny, John Gardner,
* Page Editors: James Newton, David Cary, and YOU!
* Roman Black of Black Robotics donates from sales of Linistep stepper controller kits.
* Ashley Roll of Digital Nemesis donates from sales of RCL-1 RS232 to TTL converters.
* Monthly Subscribers: Gregg Rew. on-going support is MOST appreciated!
* Contributors: Richard Seriani, Sr.

Welcome to!