Subject: comp.periphs.printers - FAQ - Part 3 of 11
Version: 3.09
Last-Modified: 1997/01/05
Summary: This posting contains a list of Frequently Asked
         Questions (and their answers) about printers and
         should be read by anyone wishing to post to the
         comp.periphs.printers newsgroup.
Posting-Frequency: monthly
Date: Sun, 5 Jan 1997 05:25:30 GMT
Archive-Name: comp-periphs-printers-faq

Subject: 03 Printer Languages or Emulations

_______________

Subject: 03.01 HP PCL and PJL

The PCL printer language was developed by Hewlett-Packard for
their printers (laser and inkjet). PCL versions are numbered
beginning with 1, the current version is 5e. Some words about PCL
history (from HP's Printer Language Technical Reference Manual):

    PCL 1       Print and Space functionality is the base set of
                functions provided for simple, convenient,
                single-user workstation output.

    PCL 2       EDP (Electronic Data Processing)/Transaction
                functionality is a superset of PCL 1. Functions
                were added for general purpose, multi-user system
                printing.

    PCL 3       Office Word Processing functionality is a
                superset of PCL 2. Functions were added for high-
                quality, office document production. (Printers: HP
                DeskJet family)

    PCL 4       Page formatting functionality is a superset of
                PCL 3. Functions were added for new page printing
                capabilities. (Printers: HP LaserJet II, HP
                LaserJet IIP (PCL 4.5))

    PCL 5       Office Publishing functionality is a superset of
                PCL 4. New publishing capabilities include font
                scaling and HP-GL/2 graphics. (Printers: HP
                LaserJet III, HP LaserJet 4 (PCL 5e))

PCL versions differ in functionality (e.g. font type support:
bitmap fonts, scalable fonts (Intellifonts, TrueType fonts),
raster graphic compression methods, HP-GL/2 graphic support).

PCL is the most widely spread printer language in the laser
printer market today. Most laser printer manufacturers use an
implementation of PCL 4 or PCL 5 for their printers.

PJL (Printer Job Language) was developed also by Hewlett-Packard
to provide a method for switching parameters at the job level and
for status readback between printer and host computer. PJL may be
used at the beginning of a print job for setting some job specific
parameters like printer language (PCL, PostScript or others),
resolution (300 or 600 dpi), number of copies, etc.

Note: not all HP printers support PJL commands. Sending such a
command to a printer not supporting it may cause the printout of
the command in the case of a PCL printer. For printers in
PostScript mode, the command will cause a PostScript error and
prevent the job from printing.

PJL is currently supported by the following HP printers: LaserJet
IIISi, LaserJet 4 family, PaintJet XL300 and DesignJet.
PJL is also supported in the "5" series LaserJet printers.

According to Ronald F. Guilmette, HP will sell you a set of 
technical manuals covering PCL and PJL in depth: You _must_ buy
the complete "manual bundle". The new part number for the complete
PCL manual bundle is: 5010-3997. Cost of this manual bundle is
$92.50. The number for ordering this manual bundle is 800 227-8164.

_______________

Subject: 03.02 PostScript

PostScript is a page description language produced by Adobe
Systems Inc. since the early 1980's. Adobe was formed in 1982 by
Dr. John E. Warnock and Dr. Charles M. Geschke. It provides a
verbose language of instructions to describe a page of
information. While it requires more memory to work with than most
page description languages, it was the first widely available
product that allowed for control over a large number of fonts and
graphical objects.

The first version published in 1985 (the old Red Book) is
called Level I, the current implementation (the big Red Book)
is called Level II (do not mix these levels with the PostScript
version a printer supports, e.g. version 47.0 or version
2011.110, nor with the number in the begin line of any PostScript
output like "%!PS-Adobe-3.0"). The PostScript level and to an
extent the version of the interpreter too, define the possible
operations. For more information see the Red and White Book.

There are several PostScript clones around because of the
costly licensing fees for Adobe's interpreter, the best-known
surely is GhostScript (see Miscellaneous Information).
Others, built directly into laser printers or addable via
cartridges, are Phoenix Page, Brotherscript, Page Styler,
True Image, Turbo PS, PDL and KPDL. Naturally they all claim
to be 100% PostScript compatible, but this compatibility sometimes
ends when it comes to font downloading, font manipulation like
adding a metric table or adding new characters, or some other
operations. The printing of simple text and graphics is usually
no problem with these clones.

| Adobe Systems Inc. runs a very good world wide web site 
| <http://www.adobe.com> where information about PostScript-
| related products may be found. You may also find technical 
| notes for developers (partly updates for books and manuals), 
| PPD's for most Adobe PostScript printers, and some sample 
| programs.

Beside many other books covering PostScript more or less in
detail there are the reference manuals from Adobe Systems Inc.
(all published by Addison Wesley Publishing Company):
- PostScript Language Reference Manual (the old red book),
  covers PostScript Level I
  (ISBN 0-201-10174-2)
- PostScript Language Tutorial and Cookbook (the blue book),
  contains annotated examples and short programs
  (ISBN 0-201-10179-3)
- PostScript Language Program Design (the green book), a guide
  for the design of efficient PostScript programs
  (ISBN 0-201-14396-8)
- Adobe Type 1 Font Format (the black book), specifies the
  format for Type 1 fonts in detail
  (ISBN 0-201-57044-0)
- PostScript Language Reference Manual, second edition (the big
  red book), covers PostScript Level II, document structuring
  conventions and more
  (ISBN 0-201-18127-4)

Another source for information about PostScript is the news group
comp.lang.postscript. Frequently asked questions are covered by
the PostScript FAQ compiled by Jon Monsarrat. It is regularly 
posted in comp.answers and comp.lang.postscript (the FAQ is also
available via FTP from standard FAQ locations, or from
<ftp://wilma.cs.brown.edu/pub/comp.sources.postscript>). In this
FAQ you may find pointers to many other books about PostScript.

_______________

Subject: 03.03 Epson ESC/P, ESC/P2

ESC/P  means Epson Standard Code for Printers.
ESC/P2 means Epson Standard Code for Printers, Level 2.

The printer language ESC/P was originally developed by Epson
for use with their early dot-matrix printers. Today it is
supported also by Epson inkjet and laser printers as well as
by many other dot-matrix printers in the market. ESC/P2 is an
enhancement of ESC/P, i.e. it has new functions for font scaling,
raster graphic printing, etc.

As with many printer languages, ESC/P or ESC/P2 on printers from
different manufacturers may differ slightly in their functionality.
Normally the differences are additional functions not provided with
the original version from Epson, so beware of using them if you want
to support all ESC/P or ESC/P2 compatible printers.

Information about ESC/P and ESC/P2 may be found in the printer manuals
of the respective manufacturer. Sometimes it is only a short listing
of all available functions (hopefully!) sometimes the functions are
declared in depth with examples in BASIC. Character set tables and
font width tables may be found there too.

Epson sells the "ESC/P2 Reference Manual", which includes both ESC/P
and ESC/P2, as well as a complete description of the differences in
commands supported by each printer. The newest version is August 1992,
but there is also an addendum which includes the new Stylus Color
commands, identified as: "Epson Stylus COLOR Programming Note" dated
July 8, 1994.

According to Stuart Williams, a listing of ESC/P codes can be found in
<ftp://ftp.epson.com/impact/ESCODE.TXT>

_______________

Subject: 03.04 IBM Proprinter

The printer language IBM ProPrinter is originally used with IBM
printers (IBM Graphics Printer 5152, IBM ProPrinter XL 4201/4202,
IBM ProPrinter X24/XL24 4207/4208), today it is supported by many
dot-matrix printers as is the case with Epson's ESC/P and ESC/P2.
IBM ProPrinter has become another standard emulation for third-
party printers. The functionality is different according to the
version used or selected during printer setup (XL, X24/XL24 or
AGM are some of these versions).

As with many printer languages, IBM ProPrinter on printers
from different manufacturers may differ slightly in their
functionality. Normally the differences are additional functions
not provided with the standard emulations so don't use them if
you want to support the standard.

Information about the IBM ProPrinter emulation may be found in
the printer manuals of the respective manufacturer. As with ESC/P
and ESC/P2 this information can be a short listing of the
available functions, or the functions declared in depth.
Character set tables and font width tables may be found there,
too.

_______________

Subject: 03.05 Other Emulations

There are a lot of other unique emulations in the printer market.
The following list is therefore far from being complete (the
intention is not to describe them exactly, but only to mention
them). The order of the listed emulations doesn't say anything
about their importance in the printer market.

Advanced Function Printing (AFP): is used on IBM Mainframes for
  page printers. It is an architected presentation function set
  of the Mixed Object Document Content Architecture (MO:DCA),
  which is part of IBM's System Application Architecture.

  You don't actually print with MO:DCA, IPDS (Intelligent Printer
  Data Stream) is used. The information we have may be out of
  date, but it used to contain PTOCA (Print Text Object Content
  Architecture), GOCA (Graphic Object Content Architecture), IOCA
  (Image Object Content Architecture) as well as some other, non-SAA
  descriptors (simple image, for example). IPDS is IBM's SAA printing
  language.

  It handles a variety of bit-mapped fonts, simple graphics
  primitives, and bit-mapped images. Because of the simplicity of the
  imaging model, it can be used to drive high speed laser printers.

Diablo 630 emulation: was originally used with daisywheel printers
  and typewriters. It supports only sequences for tabulation, line
  and character spacing, attribute selection (bold, double-strike,
  underline), horizontal movement in both directions, proportional
  spacing and automatic centering and justification among others.
  This emulation is sometimes used by other vendors as a base for
  their printer specific emulation.

CaPSL: (Canon Printing System Language) was the former standard
  emulation for Canon laser printers. Another name for this
  emulation is LIPS (Laser-beam Image Processing System).
  LIPS supports Diablo 630 (the factory setting for the command
  mode), ISO mode (for printing text data and raster graphics)
  and VDM mode (for vector graphics and character printing).
  The story behind CaPSL was that because Canon makes printing
  engines for HP, they weren't allowed to license HP PCL for their
  own printers. Hence the need for their own printer language.
  Canon lasers traditionally included CaPSL, IBM ProPrinter,
  ESC/P and PostScript emulations, but no PCL emulation).
  This part of the contract between Canon and HP has apparently
  expired, since nowadays Canon offers printers with PCL 4 and
  PCL 5 code. On the other hand Canon no longer seems to offer
  printers with CaPSL emulation.
   
RENO: this is the standard emulation for Agfa printers (P400,
  P3400 etc.). RENO is a sort of page description language.
  The functionality is enormous: beside printing text with
  different scalable fonts, you may draw lines, fill windows
  with a pattern, use programming statements (if-then-else,
  repeat-until, set, use and print variables, push and pop
  operations), download and print your own symbols and transfer
  data to the printer's RAM or to a hard disk or floppy disk
  if attached.

Prescribe: this is a page description language created by
  Kyocera. The advantage of this language is that you may embed
  it in any other currently selected printer emulation on the
  Kyocera machines. Kyocera printers support HP PCL, an HP-GL
  clone called KC-GL, Epson ESC/P (LQ-850 mode), IBM ProPrinter
  X24E, Diablo 630, a generic line printer emulation and, as
  an option, KPDL, a PostScript clone. Being able to use the
  selected option for text output functions and then switch to
  an embedded Prescribe sequence for something neat the other
  emulation doesn't do easily is kind of nice.

DEC: DEC has their own unique emulations for their laser printers
  (LN03, LN06). I'll see if my former employer still has the further
  details I remember them having.

ECMA, ECMA 35: a printer language standard?

ANSI: Dan McGowan of Mannesmann Tally tells us that "The
  Mannesmann Tally printers that support ANSI are based
  upon the ANSI 3.64 specification.  This is a rather loose
  spec that covers general functions of peripherals.  Those
  of our printers produced in the U.S., in general, support
  all of the ANSI 3.64 commands pertaining to printer functions.  

  Those of our printers produced in Germany are flying serial
  head printers.  They support MTPL (Mannesmann Tally Printer
  Language) which is based upon the ANSI 3.64 spec but includes
  additional commands unique to serial printer functions/features."

_______________

=====
End of Part 3 of 11
