diff options
Diffstat (limited to 'doc/escp2.texi')
-rw-r--r-- | doc/escp2.texi | 919 |
1 files changed, 0 insertions, 919 deletions
diff --git a/doc/escp2.texi b/doc/escp2.texi deleted file mode 100644 index db6f057..0000000 --- a/doc/escp2.texi +++ /dev/null @@ -1,919 +0,0 @@ -@node ESC/P2, New Printer, Weaving, Appendices -@appendix ESC/P2 -@cindex ESC/P2 - -@menu -* ESC/P2 Introduction:: What is ESC/P2 -* ESC/P2 Standard Commands:: Normal ESC/P2 commands -* ESC/P2 Remote Mode Commands:: Exotic ESC/P2 commands -* ESC/P2 Appropriate Remote Commands:: Useful remote command sequences -@end menu - -@node ESC/P2 Introduction, ESC/P2 Standard Commands, , ESC/P2 -@appendixsection Introduction to ESC/P2 -@cindex ESC/P2 introduction - -This is a description of the ESC/P2 raster commands used by the -gimp-print plugin and Ghostscript driver, which is a subset of the -complete command set. The full documents are found on -@url{http://www.ercipd.com/isv/edr_docs.htm}. Note that these are -@strong{not} always correct, and are certainly not complete. - -All ESCP/2 raster commands begin with the @samp{ESC} character (1b hex), -followed by either one or two command characters and arguments where -applicable. Older commands generally have one command character. Newer -commands usually have a @samp{(} (left parenthesis) followed by a -command character and a byte count for the arguments that follow. The -byte count is a 16-bit (2 byte) binary integer, in little endian order. - -All arguments listed here are of the form @samp{name[bytes]} where -@samp{[bytes]} is the number of bytes that comprise the argument. The -arguments themselves are usually one, two, or four byte integers, always -little endian (the least significant bits come first). Presumably this -is to match Intel processors. - -In some cases, the same command sequence identifies different versions -of the same command, depending upon the number of bytes of arguments. - - -@node ESC/P2 Standard Commands, ESC/P2 Remote Mode Commands, ESC/P2 Introduction, ESC/P2 -@appendixsection Standard commands - -@deffn {ESC/P2 command} @code{ESC @@} -Reset the printer. Discards any output, ejects the existing page, -returns all settings to their default. Always use this before printing -a page. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (G @var{BC}=1 @var{ON1}} -Turn on graphics mode. @var{ON} should be @samp{1} (turn on graphics -mode). -@end deffn - -@deffn {ESC/P2 command} @code{ESC (U @var{BC}=1 @var{UNIT1}} -Set basic unit of measurement used by printer. This is expressed in -multiples of 1/3600". At 720 DPI, @var{UNIT} is @samp{5}; at 360 DPI, -@var{UNIT} is @samp{10}. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (U @var{BC}=5 @var{PAGEUNITS1} @var{VUNIT1} @var{HUNIT1} @var{BASEUNIT2}} -Set basic units of measurement used by the printer. @var{PAGEUNIT} is -the unit of page measurement (for commands that set page dimensions and -the like). @var{VUNIT} is the unit of vertical measurement (for -vertical movement commands). @var{HUNIT} is the unit of horizontal -movement (for horizontal positioning commands). All of these units are -expressed in @var{BASEUNIT}, which is in reciprocal inches. Typically, -@var{BASEUNIT} is @samp{1440}. In 720 DPI mode, @var{PAGEUNIT}, -@var{VUNIT}, and @var{HUNIT} are all @samp{2}; in 1440x720 DPI mode, -@var{PAGEUNIT} and @var{VUNIT} are normally set to @samp{2}; @var{HUNIT} -is set to @samp{1}. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (K @var{BC}=2 @var{ZERO1} @var{GRAYMODE1}} -Set color or grayscale mode, on printers supporting an explicit -grayscale mode. These printers can be identified because they are -advertised as having more black nozzles than nozzles of individual -colors. Setting grayscale mode allows use of these extra nozzles for -faster printing. @var{GRAYMODE} should be @samp{0} or @samp{2} for -color, @samp{1} for grayscale. @var{ZERO} should always be @samp{0}. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (i @var{BC}=1 @var{MICROWEAVE1}} -If @var{MICROWEAVE} is @samp{1}, use microweave mode. On older -printers, this is used to turn on microweave; on newer printers, it -prints one row at a time. All printers support this mode. It should -only be used at 720 (or 1440x720) DPI. The Epson Stylus Pro series -indicates additional modes: - -@table @samp -@item 2 -``Full-overlap'' -@item 3 -``Four-pass'' -@item 4 -``Full-overlap 2'' -@end table - -Any of these commands can be used with the high four bits set to either -@samp{3} or @samp{0}. -@end deffn - -@deffn {ESC/P2 command} @code{ESC U @var{DIRECTION1}} -If @var{DIRECTION} is @samp{1}, print unidirectionally; if @samp{0}, -print bidirectionally. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (s @var{BC}=1 @var{SPEED1}} -On some older printers, this controls the print head speed. @var{SPEED} -of @samp{2} is 10 inches/sec; SPEED of @samp{0} or 1 is 20. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (e @var{BC}=2 @var{ZERO1} @var{DOTSIZE1}} -Choose print dotsize. @var{DOTSIZE} can take on various values, -depending upon the printer. Almost all printers support @samp{0} and -@samp{2}. Variable dot size printers allow a value of @var{16}. Other -than the value of @var{16}, this appears to be ignored at resolutions of -720 DPI and above. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (C @var{BC}=2 @var{PAGELENGTH2}} -@deffnx {ESC/P2 command} @code{ESC (C @var{BC}=4 @var{PAGELENGTH4}} -Set the length of the page in "pageunits" (see @samp{ESC (U} above). -The second form of the command allows setting of longer page lengths on -new printers (these happen to be the printers that support variable dot -size). -@end deffn - -@deffn {ESC/P2 command} @code{ESC (c @var{BC}=4 @var{TOP2} @var{LENGTH2}} -@deffnx {ESC/P2 command} @code{ESC (c @var{BC}=8 @var{TOP4} @var{LENGTH4}} -Set the vertical page margins of the page in "pageunits" (see @samp{ESC -(U} above). The margins are specified as the top of the page and the -length of the page. The second form of the command allows setting of -longer page lengths on new printers (these happen to be the printers -that support variable dot size). -@end deffn - -@deffn {ESC/P2 command} @code{ESC (S @var{BC}=8 @var{WIDTH4} @var{LENGTH4}} -Set the width and length of the printed page region in "pageunits" (see -@samp{ESC (U} above). -@end deffn - -@deffn {ESC/P2 command} @code{ESC (v @var{BC}=2 @var{ADVANCE2}} -@deffnx {ESC/P2 command} @code{ESC (v @var{BC}=4 @var{ADVANCE4}} -Feed vertically @var{ADVANCE} "vertical units" (see @samp{ESC (U} above) -from the current print head position. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (V @var{BC}=2 @var{ADVANCE2}} -@deffnx {ESC/P2 command} @code{ESC (V @var{BC}=4 @var{ADVANCE4}} -Feed vertically @var{ADVANCE} "vertical units" (see @samp{ESC (U} above) -from the top margin. -@end deffn - -@deffn {ESC/P2 command} @code{ESC ($ @var{BC}=4 @var{OFFSET4}} -Set horizontal position to @var{OFFSET} from the left margin. This -command operates on printers of the 740 class and newer (all printers -with variable dot size). -@end deffn - -@deffn {ESC/P2 command} @code{ESC $ @var{OFFSET2}} -Set horizontal position to @var{OFFSET} from the left margin. This -command operates on printers of the 740 class and newer (all printers -with variable dot size). -@end deffn - -@deffn {ESC/P2 command} @code{ESC (\ @var{BC}=4 @var{UNITS2} @var{OFFSET2}} -Set horizontal position to @var{OFFSET} from the previous print head -position, measured in @var{UNITS}. @var{UNITS} is measured in inverse -inches, and should be set to 1440 in all cases. This operates on all -1440 dpi printers that do not support variable dot size. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (/ @var{BC}=4 @var{OFFSET4}} -Set horizontal position to @var{OFFSET} from the previous print head -position, measured in "horizontal units" (see @samp{ESC (U} above). -This operates on all variable dot size printers. -@end deffn - -@deffn {ESC/P2 command} @code{ESC \ @var{OFFSET2}} -Set horizontal position to @var{OFFSET} from the previous print head -position, measured in basic unit of measurement (see @samp{ESC (U} -above). This is used on all 720 dpi printers, and can also be used on -1440 dpi printers in lower resolutions to save a few bytes. Note that -@var{OFFSET} may be negative. The range of values for this command is -between @samp{-16384} and @samp{16383}. -@end deffn - -@deffn {ESC/P2 command} @code{ESC r @var{COLOR1}} -@deffnx {ESC/P2 command} @code{ESC (r @var{BC}=2 @var{DENSITY1} @var{COLOR1}} -Set the ink color. The first form is used on four-color printers; the -second on six-color printers. @var{DENSITY} is @samp{0} for dark inks, -@samp{1} for light. @var{COLOR} is - -@table @samp -@item 0 -black -@item 1 -magenta -@item 2 -cyan -@item 4 -yellow -@end table - -This command is not used on variable dot size printers in softweave -mode. -@end deffn - -@deffn {ESC/P2 command} @code{ESC . @var{COMPRESS1} @var{VSEP1} @var{HSEP1} @var{LINES1} @var{WIDTH2} @var{data...}} - Print data. @var{COMPRESS} signifies the compression mode: - -@table @samp -@item 0 -no compression -@item 1 -TIFF compression (incorrectly documented as "run length encoded") -@item 2 -TIFF compression with a special command set. -@end table - -@var{VSEP} depends upon resolution and printer type. At 360 DPI, it is -always @samp{10}. At 720 DPI, it is normally @samp{5}5. On the ESC -600, it is @samp{40} (@math{8 * 5}). On some other printers, it varies. - -@var{HSEP1} is @samp{10} at 360 DPI and @samp{5} at 720 or 1440 DPI -(1440 DPI cannot be printed in one pass; it is printed in two passes, -with the dots separated in each pass by 1/720"). - -@var{LINES} is the number of lines to be printed. It should be @samp{1} -in microweave and 360 DPI. At 720 DPI softweave, it should be the -number of lines to be actually printed. - -@var{WIDTH} is the number of pixels to be printed in each row. -Following this command, a carriage return (@samp{13} decimal, @samp{0A} -hex) should be output to return the print head position to the left -margin. - -The basic data format is a string of bytes, with data from left to right -on the page. Within each byte, the highest bit is first. - -The TIFF compression is implemented as one count byte followed by one or -more data bytes. There are two cases: - -@enumerate -@item -If the count byte is @samp{128} or less, it is followed by @math{[count] -+ 1} data bytes. So if the count byte is @samp{0}, it is followed by 1 -data byte; if it is @samp{128}, it is followed by 129 data bytes. - -@item -If the count byte is greater than 128, it is followed by one byte. This -byte is repeated (257 - [count]) times. So if [count] is 129, the next -byte is treated as though it were repeated 128 times; if [count] is 255, -it is treated as though it were repeated twice. -@end enumerate -@end deffn - -@deffn {ESC/P2 command} @code{ESC i @var{COLOR1} @var{COMPRESS1} @var{BITS1} @var{BYTES2} @var{LINES2} @var{data...}} -Print data in the newer printers (that support variable dot size), and -Stylus Pro models. - -@var{COLOR} is the color: - -@table @samp -@item 0 -black -@item 1 -magenta -@item 2 -cyan -@item 4 -yellow -@item 17 -light magenta -@item 18 -light cyan -@end table - -@var{COMPRESS} signifies the -compression mode: - -@table @samp -@item 0 -no compression -@item 1 -TIFF compression (incorrectly documented as "run length encoded") -@item 2 -TIFF compression with a special command set. -@end table - -@var{BITS} is the number of bits per pixel. - -@var{BYTES} is the number of bytes wide for each row (@math{ceiling(BITS -* width_of_row, 8)}). Note that this is different from the @samp{ESC .} -command above. - -@var{LINES} is the number of lines to be printed. This command is the -only way to get variable dot size printing. In variable dot mode, the -size of the dots increases as the value (@samp{1}, @samp{2}, or -@samp{3}) increases. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (D @var{BC}=4 @var{BASE2} @var{VERTICAL1} @var{HORIZONTAL1}} -Set printer horizontal and vertical spacing. It only applies to -variable dot size printers in softweave mode (and possibly other high -end printers). - -@var{BASE} is the base unit for this command; it must be @samp{14400}. - -@var{VERTICAL} is the distance in these units between printed rows; it -should be (@math{separation_in_nozzles * BASE / 720}). - -@var{HORIZONTAL} is the horizontal separation between dots in a row. -Depending upon the printer, this should be either (@math{14400 / 720}) -or (@math{14400 / 360}). The Stylus Pro 9000 manual suggests that the -settings should match the chosen resolution, but that is apparently not -the case (or not always the case) on other printers. -@end deffn - -@deffn {ESC/P2 command} @code{ESC (R @var{BC}=8 00 R E M O T E 1} -Enters ``remote mode''. This is a special, undocumented command set that -is used to set up various printer options, such as paper feed tray, and -perform utility functions such as head cleaning and alignment. It does -not appear that anything here is actually required to make the printer -print. Our best understanding of what is in a remote command sequence -is described in a separate section below. -@end deffn - -@deffn {ESC/P2 command} @code{ESC 01 @@EJL [sp] ID\r\n} -Return the printer ID. This is considered a remote mode command, -although the syntax is that of a conventional command. This returns the -following information: - -@example -@@EJL ID\r -MFG:EPSON; -CMD:ESCPL2,BDC; -MDL:[printer model]; -CLS:PRINTER; -DES:EPSON [printer model]; -\f -@end example -@end deffn - -After all data has been sent, a form feed byte should be sent. - -All newer Epson printers (STC 440, STP 750) require the following -command to be sent at least once to enable printing at all. This -command specifically takes the printer out of the Epson packet mode -communication protocol (whatever that is) and enables normal data -transfer. Sending it multiple times is is not harmful, so it is -normally sent at the beginning of each job: - -@example -ESC 01@@EJL[space]1284.4[newline]@@EJL[space][space][space][space] -[space][newline]ESC@@ -@end example - -The proper sequence of initialization commands is: - -@example -magic command -ESC @ -remote mode if needed -ESC (G -ESC (U -ESC (K (if appropriate) -ESC (i -ESC U (if needed) -ESC (s (if appropriate) -ESC (e -ESC (C -ESC (c -ESC (S -ESC (D (if needed) -ESC (V (optional -- this can be accomplished with ESC (v) -@end example - -For printing, the proper sequence is: - -@example -ESC (v -@end example - -@noindent -and repeat for each color: - -@example -ESC ($ @r{or} ESC (\ @r{or} ESC \ -ESC (r @r{or} ESC r @r{(if needed---not used with @samp{ESC i} and not needed if the color -has not changed from the previous printed line)} -ESC . @r{or} ESC i ...data... [return] (0A hex) -@end example - -To terminate a page: - -@example -[formfeed] (0C hex) -ESC @@ -@end example - - -@node ESC/P2 Remote Mode Commands, ESC/P2 Appropriate Remote Commands, ESC/P2 Standard Commands, ESC/P2 -@appendixsection Remote Mode Commands - -The following description of remote commands comes out of an -examination of the sequences used by the printer utilities bundled -with the Windows drivers for the ESC740, and from other sources (some -Epson manuals, experimentation, analysis of print files). It is -largely speculative as these commands are not all documented in the -Epson documentation we have access to. Generally, newer manuals -provide more thorough documentation. - -Remote command mode is entered when the printer is sent the following -sequence: - -@example -ESC (R BC=8 00 R E M O T E 1 -@end example - -Remote mode commands are then sent, and terminated with the following -sequence: - -@example -ESC 00 00 00 -@end example - -All remote mode commands must be sent before the initial @samp{ESC (G} -command is sent. - -This introductory sequence is then followed by a sequence of commands. -Each command is constructed as follows: - -@itemize -@item Two ASCII bytes indicating the function -@item A byte count (two bytes, little-endian) for the parameters -@item Binary parameters, if any -@end itemize - -This is a list of all remote commands we have seen: - -@deffn {ESC/P2 remote command} @code{NC @var{BC}=2 00 00} -Print a nozzle check pattern -@end deffn - -@deffn {ESC/P2 remote command} @code{VI @var{BC}=2 00 00} -on my 740, prints the following: - -@example -W01286 I02382\r\n -@end example - -@noindent -probably ``version information'' -@end deffn - -@deffn {ESC/P2 remote command} @code{* AI @var{BC}=3 00 00 00} -Prints a ``printer ID''. On one 870, prints the following: -@example -51-51-50-51-49-48\r\n -@end example - -The Windows driver has a text entry field where this number can be -entered, but its purpose is unknown. -@end deffn - -@deffn {ESC/P2 remote command} @code{* LD @var{BC}=0} -Load printer defaults from NVRAM, DIP switches, and/or ROM. This -apparently does not load factory defaults per se, but any settings that -are saved. This is commonly used right at the end of each print job -after the @samp{ESC @@} printer reset command. -@end deffn - -@deffn {ESC/P2 remote command} @code{* CH @var{BC}=2 00 @var{xx}} -Perform a head cleaning cycle. The heads to clean are determined by -parameter @var{xx}: - -@table @samp -@item 00 -clean all heads -@item 01 -clean black head -@item 02 -clean color heads -@end table - -While @var{xx} = @samp{00} is probably supported by all printers, @var{xx} = -@samp{01} and @samp{02} may well not be. -@end deffn - -@deffn {ESC/P2 remote command} @code{* DT @var{BC}=3 00 @var{xx} 00} -Print an alignment pattern. There are three patterns, which are picked -via the choice of @var{xx}. Pattern @samp{0} is coarse, pattern -@samp{1} is medium, and pattern @samp{2} is fine. -@end deffn - -@deffn {ESC/P2 remote command} @code{* DU @var{BC}=6 00 @var{xx} 00 09 00 @var{yy}} -Print another alignment pattern. It isn't entirely clear what @var{xx} -and @var{yy} are, but it appears that @var{xx} takes on the values -@samp{1} and @samp{2} , and @var{yy} takes on the values @samp{0} and -@var{1}. This may only work on the 580 and/or 480. -@end deffn - -@deffn {ESC/P2 remote command} @code{* DA @var{BC}=4 00 @var{xx} 00 @var{yy}} -Set results for the first alignment pattern. @var{xx} is the pattern -(@samp{1}--@samp{3}); @var{yy} is the best choice from the set -(@samp{1}--@samp{7} or @samp{1}--@samp{15}). This does not save to -NVRAM, so when the printer is powered off, the setting will be lost. -@end deffn - -@deffn {ESC/P2 remote command} @code{* DA @var{BC}=6 00 @var{xx} 00 @var{yy} 09 00} -Set results for alternate alignment pattern. @var{xx} appears to be the -pass, and @var{yy} appears to be the optimum pattern. This does not -save to NVRAM, so when the printer is powered off, the setting will be -lost. -@end deffn - -@deffn {ESC/P2 remote command} @code{* SV @var{BC}=0} -Save the current settings to NVRAM. -@end deffn - -@deffn {ESC/P2 remote command} @code{* RS @var{BC}=1 01} -Reset the printer. -@end deffn - -@deffn {ESC/P2 remote command} @code{* IQ @var{BC}=1 01} -Get ink quantity. This requires direct access to the printer port. The -return looks like - -@example -IQ:KKCCMMYY -@end example - -@noindent -or - -@example -IQ:KKCCMMYYccmm -@end example - -@noindent -(for 4-color and 6-color printers respectively), where each pair of -digits are hexadecimal representations of percent. -@end deffn - -The following two commands have been observed on an STP 870. - -@deffn {ESC/P2 remote command} @code{* IR @var{BC}=2 00 @var{xx}} -@strong{Function unknown}. This command has been observed on an STP 870 -with @var{xx}=@samp{03} at the start of a job and @var{xx}=@samp{02} at -the end of a job (where it is followed by an @samp{LD} command). When -in roll mode, the values change to @var{xx}=@samp{01} at the start of a -job and @var{xx}=@samp{00} at the end of a job. -@end deffn - -@deffn {ESC/P2 remote command} @code{* FP @var{BC}=3 00 @var{xx} @var{yy}} -@var{xx}=@samp{00} and @var{yy}=@samp{00} selects the printer's normal -left margin (about 3mm). @var{xx}=@samp{0xb0} and @var{yy}=@samp{0xff} -selects zero-margin mode, where the left-most print position is shifted -to a point about 0.1" to the left of the left-hand edge of the paper, -allowing printing up to (and off) the left-hand edge of the paper. -@end deffn - -The commands below are partially documented in the Stylus Pro 9000 -manual. Much of this information is interpreted; none is tested. - -@deffn {ESC/P2 remote command} @code{* SN @var{BC}=3 00 @var{xx} @var{yy}} -Select Mechanism Sequence. @var{xx} controls which sub-operation is -performed. @var{xx}=@samp{00} selects the ``Feed paper sequence -setting''. @var{yy} can take on the following values (on the STP 870, -at any rate): - -@table @samp -@item 0 -default -@item 1 -plain paper -@item 2 -postcards -@item 3 -film (photo quality glossy film, transparencies) -@item 4 -envelopes -@item 5 -plain paper (fast load) -@item 6 -back light film (although this has been observed with heavyweight matte -paper) -@item 7 -matte paper (observed with 360 dpi inkjet paper, and photo quality -inkjet paper) -@item 8 -photo paper -@end table - -Experimentation suggests that this setting changes details of how the -printers' cut sheet feeder works, presumably to tune it for different -types of paper. - -@var{xx}=@samp{01} controls the platen gap setting; @var{yy}=@samp{00} -is the default, @var{yy}=@samp{1} or @samp{2} are higher settings. - -@var{xx}=@samp{02} controls paper loading speed (@var{yy}=@samp{0} is -normal, @samp{1} is fast, @samp{2} is slow). It appears that @samp{1} -is used when printing on ``plain paper'', ``360dpi ink jet paper'' or -``ink jet transparencies'', and @var{yy}=@samp{00} for all other paper -type settings. - -@var{xx}=@samp{07} controls duplex printing for printers with that -capability (@var{yy}=@var{0} is default, for non-duplex printing; -@samp{1} is front side of the paper, and @var{2} is back side). - -@var{xx}=@samp{09} controls zero margin printing on the printers with -the capability of printing zero-margin on all sides (Stylus Photo -780/790, 890, and 1280/1290). @var{yy}=@samp{0} is the default; -@samp{1} enables zero margin printing. -@end deffn - -@deffn {ESC/P2 remote command} @code{* PP @var{BC}=3 00 @var{xx} @var{yy}} -Set Paper Path. @var{xx}=@samp{2} indicates manual feed, -@var{xx}=@samp{3} is for roll paper. @var{yy} selects ``paper path -number''. -@end deffn - -@deffn {ESC/P2 remote command} @code{* AC @var{BC}=2 00 @var{xx}} -Set Auto Cutting State. @var{xx}=@samp{0} selects auto cutting off, -@var{xx}=@samp{1} selects auto cutting on, and @var{xx}=@samp{2} -indicates horizontal print page line on. It appears that with auto -cutting on, roll paper is cut automatically at the point a formfeed -character is sent. The formfeed character is normally used to eject a -page; with this turned on, it also cuts the roll paper. Horizontal -print page line on prints a narrow line of black dots at the position -the paper should be cut manually. -@end deffn - -@deffn {ESC/P2 remote command} @code{* DR @var{BC}=4 00 xx @var{DT2}} -Set Drying Time. @var{xx}=@samp{00} sets the drying time ``per scan'' -(per pass?); @var{xx}=@samp{01} sets the drying time per page. @var{DT} -indicates the drying time, which is in seconds if page mode is used and -in milliseconds if scan mode is used. @var{DT} must not exceed 3600 -seconds in per-page mode and 10000 milliseconds in per-scan mode. -@end deffn - -@deffn {ESC/P2 remote command} @code{* IK @var{BC}=2 00 @var{xx}} -Select Ink Type. @var{xx}=@samp{00} selects dye ink. Pigment ink is -apparently selected by @var{xx}=@samp{01}. This probably does not apply -to the consumer-grade printers. -@end deffn - -@deffn {ESC/P2 remote command} @code{* PZ BC=2 00 xx} -Set Pause After Printing. @var{xx}=@samp{00} selects no pause after -printing; @var{xx}=@samp{01} selects pause after printing. If turned -on, the printer is paused after the page is ejected (by the FF -byte). If cutting is turned on, the printer is paused @strong{after} -the cutting or printing of the horizontal cut line. -@end deffn - -@deffn {ESC/P2 remote command} @code{* EX @var{BC}=6 00 00 00 00 0x14 @var{xx}} -Set Vertical Print Page Line Mode. @var{xx}=@samp{00} is off, -@var{xx}=@samp{01} is on. If turned on, this prints vertical trim lines -at the left and right margins. -@end deffn - -@deffn {ESC/P2 remote command} @code{* EX @var{BC}=6 00 00 00 00 0x05 @var{xx}} -Set Roll Paper Mode. If @var{xx} is @samp{0}, roll paper mode is off; -if @var{xx} is @samp{1}, roll paper mode is on. -@end deffn - -@deffn {ESC/P2 remote command} @code{* EX @var{BC}=3 00 @var{xx} @var{yy}} -Appears to be a synonym for the @samp{SN} command described above. -@end deffn - -@deffn {ESC/P2 remote command} @code{* PH @var{BC}=2 00 @var{xx}} -Select Paper Thickness. Set the paper thickness @var{xx} in .1 mm -units. This must not exceed 0x10 (1.6 mm). If the thickness is set -"more than" .6 mm (which probably means "at least" .6 mm, since the -other case reads "less than 0.5 mm"), the platen gap is set high -irrespective of the @samp{SN} command. -@end deffn - -@deffn {ESC/P2 remote command} @code{* PM @var{BC}=2 00 00} -@strong{Function unknown}. Used on the STC 3000 at least when using roll -feed, and on the STP 870 in all print files analysed to date. -@end deffn - -@deffn {ESC/P2 remote command} @code{* ST @var{BC}=2 00 @var{xx}} -Epson's STP 750/1200 programming guide refers to the @samp{ST} command -as ``Set printer state reply''. If @var{xx} is @samp{0} or @samp{2}, -the printer will not send status replies. If @var{xx} is @samp{1} or -@samp{3}, the printer will send status replies. The status replies -consist of state, error codes, ink leve, firmware version, and warning -status. - -The actual reply is documented as - -@example -@@BDC ST\r -ST: xx; -[ER: yy;] -IQ: n1n2n3n4; -[WR: w1,w2...;] -RV: zz; -AI:CW:02kkccmmyy, MI:mm -[TC:tttt;] -INK:...; -\f -@end example - -@noindent -(@samp{\r} is carriage return; @samp{\n} is newline; @samp{\f} is -formfeed.) - -@samp{ST} is the printer status: - -@table @samp -@item 00 -Error -@item 01 -Self-test -@item 02 -Busy -@item 03 -Waiting while printing -@item 04 -Idle -@item 07 -Cleaning/filling ink heads -@item 08 -Not yet initialized/filling heads -@end table - -@samp{ER}, if provided, is the error status: - -@table @samp -@item 00 -Fatal error -@item 01 -Interface not selected -@item 04 -Paper jam -@item 05 -Out of ink -@item 06 -Paper out -@end table - -@samp{IQ} is the amount of ink left, as a (decimal!) percentage -expressed in hexadecimal. The values are black, cyan, magenta, and -yellow (presumably 6-color printers supply light cyan and light magenta -inks as additional parameters). - -@samp{WR}, if provided, is the warning status: - -@table @samp -@item 10 -Black ink low -@item 11 -Cyan -@item 12 -Magenta -@item 13 -Yellow -@item 14 -Light cyan (presumably) -@item 15 -Light magenta (presumably) -@end table - -@samp{RV} is the firmware revision (one byte ASCII). - -@samp{AI} is actuator information. These are two byte ASCII codes that -indicate ``ink weight rank ID'' of KCMY, respectively. - -@samp{TC}, if provided, is the total time of cleaning or ink filling (?). - -@samp{INK:} and @samp{MI} are @strong{not documented}. -@end deffn - -@deffn {ESC/P2 remote command} @code{* SM @var{BC}=2 00 @var{xx}} -Set Status Reply Rate. @var{xx} is the repeat interval in seconds. If -@var{xx} is @samp{0}, the status is returned only when the printer's -state changes. -@end deffn - -@deffn {ESC/P2 remote command} @code{* ST @var{BC}=1 01} -Reply Printer Status. The reply is formatted as - -@example -@@BDC PS\r\nST:@var{xx};\f -@end example - -(@samp{\r} is carriage return; @samp{\n} is newline; @samp{\f} is -formfeed). If @var{xx} (the reply value) is @samp{0} or @samp{2}, -automatic status update is disabled; if @samp{1} or @samp{3}, it is -enabled. -@end deffn - -@deffn {ESC/P2 remote command} @code{* SM @var{BC}=1 01} -Reply Printer Status Rate. The reply is formatted as - -@example -@@BDC PS\r\nST:xx;\f -@end example - -(@samp{\r} is carriage return; @samp{\n} is newline; @samp{\f} is -formfeed). See @samp{SM @var{BC}=2} above for the meaning of the return -value. -@end deffn - -@deffn {ESC/P2 remote command} @code{* ?? @var{BC}=@var{xx} @var{y}[1] @dots{} @var{y}[xx]} -Echo Parameters (perhaps better described as Echo Commands). The -command string is executed (it would appear from the documentation), and -the string sent is returned using a sequence similar to that described -in the @samp{ST @var{BC}=1} and @samp{SM @var{BC}=1} commands. Note -that in this case the number of bytes is variable! -@end deffn - -@deffn {ESC/P2 remote command} @code{* SM @var{BC}=2 00 02} -@strong{Function unknown}. Used on the STC 3000 at least when using -roll feed. -@end deffn - - -@node ESC/P2 Appropriate Remote Commands, , ESC/P2 Remote Mode Commands, ESC/P2 -@appendixsection Appropriate Remote Commands - -All of the remote commands described above are wrapped up with the usual -boilerplate. The files always start with @samp{00 00 00} and the -``magic'' command described above, then two @samp{ESC @@}s to reset the -printer. The remote command sequences come next; if they print anything -that is usually followed by a @samp{FF} (0C hex) character to feed the -page, then the file ends with another two @samp{ESC @@}s to get back to -the ground state. - -An alignment sequence goes like this: - -@enumerate -@item Host uses @samp{DT} to print an alignment sheet -@item User eyeballs the sheet to see which is the best aligned pattern. -@item Host sends a @samp{DA} command indicating which pattern the user chose -@item If the user said "realign", meaning he isn't done yet, go to step 1 -@item We are done: host sends a @samp{SV} command and exits -@end enumerate - -The sequence used (by the STC 3000, at least) to print from the roll -feed is (with byte count omitted) - -@example - PM 00 00 - SN 00 00 00 - EX 00 00 00 00 05 01 - ST 00 01 - SM 00 02 -@end example - -The sequence used by the STP 870 to print on plain paper is - -@example - PM 00 00 - IR 00 03 - SN 00 00 01 - SN 00 01 00 - SN 00 02 01 - EX 00 00 00 00 05 00 - FP 00 00 00 -@end example - -@noindent -and the job finishes with - -@example - IR 00 02 - LD -@end example - -For different paper type settings on the STP 870, the arguments to -@samp{SN} vary. The arguments to the first and third @samp{SN} commands -are as outlined in the description of the @samp{SN} command above; the -arguments to the second (``platen gap'') are @samp{00 01 01} for thick -papers (``matte paper---heavyweight'', ``photo paper'' and ``premium -glossy photo paper'') and @samp{00 01 00} for all others. - -For roll-mode printing, the STP 870's sequence changes as follows. -@samp{IR}'s arguments become @samp{00 01} in the header, and @samp{00 -00} after the job, and @samp{EX}'s last argument changes from @samp{00} -to @samp{01}. - -For zero-margin printing on the STP 870, the arguments to @samp{FP} become -@samp{00 0xb0 0xff}. This moves the origin about 5.5mm to the left, to a -point one tenth of an inch to the left of the left-hand edge of the -paper, allowing printing right up to (and beyond) the edge of the -paper. Some printers (at least the STP 870) include white absorbent -pads at the left margin position and other positions (89mm and 100mm -on the STP 870) to soak up ink which misses the edge of the paper. -Printing off the edge of paper of a width not aligned with a pad could -result in making a mess of the inside of the printer and ink getting -on the reverse of the paper. - - - - - - - - - - - - - - - - - - - - - - - |