PCL printer commands provide access to printer features. There are four general types of printer language commands:
control codes
PCL commands
PJL commands
A control code is a character that initiates a printer function, for example Carriage Return (CR), Line Feed (LF), Form Feed (FF), etc.
PCL commands provide access to the printer's PCL control structure. The PCL structure controls all of the printer's features except those used for vector graphics, which are controlled by the HP-GL/2 commands.
PCL printer commands consist of two or more characters. The first character is always the ASCII escape character, identified by the <Esc> symbol. <Esc> is a special control code which identifies the subsequent string of characters as a printer command. As the printer monitors the incoming data from a computer, the printer searches for this character. When this character appears, the printer reads it and its associated characters as a command to perform and not as data to print.
Once a PCL command sets a parameter, that parameter remains set until that PCL command is repeated with a new value, or the printer is reset to its user default environment. For example, if you send the printer a command to set line spacing to 3 lines/inch, each page prints 3 lines/inch until the printer receives a different Line Spacing command, or the printer is reset.
PJL (Printer Job Language) commands provide a different type of printer control. Unlike PCL and HP-GL/2, which control the placement of dots on the printed page, PJL supplies job-level control. One of the main features PJL offers is the ability to switch printer languages (personalities) between jobs. For example, applications supporting PJL can print one job using PCL, and then print the next job using PostScript or another printer language - without any operator intervention, if the printer can print both.
PJL also provides two-way communications with the printer. For example, PJL can request information from the printer such as printer model, configuration, printer status, and job status. PJL also can be used to change the printer's operator panel settings and modify the message displayed on the operator panel.
The PJL language is designed to be used by application developers and technical support personnel only.