|
Epson - Using ESCP/2 CommandsThis guide provides detailed explainations and illustrations for some of the more commonly used printer commands used in ESC/P2. Listed below are the commands discussed in this guide.
ESC X m n1 n2 is the command for selecting pitch and point size where m, n1 and n2 are variables. The variable "m" is used to select the pitch, which is the character spacing. The variable "n1" selects the point size and the variable "n2", at this time, will always be 0 (zero). The variables "m" and "n1" are explained below. The values used for "m" are 0, 1, 18, 21, 24, 30, 36, 42, 48, 60, and 72. If "0" is used as the value for "m", there will be no change in pitch. If "1" is used as the value for "m", the character pitch will be proportional spacing. To determine the character pitch for all other values of "m", divide 360 by "m". For example, if m=60 then 360 divided by 60 equals 6 and the character pitch is 6 characters per inch. If m=30, the character pitch is 12 characters per inch. For the Roman and Sans Serif fonts, the values used for "n1" are 0, 16, 20, 21, 24, 28, 32, 36, 40, 42, 44, 48, 52, 56, 60 and 64. For all other fonts, the values used for "n1" are 0, 21, and 42. The actual point size that will print is n1 divided by 2. For example, if n1=20, the point size is 10. If n1=48, the point size is 24. NOTE: When selecting a point size larger than 24 (the value for n1 is greater than 48), select proportional spacing (m=1) for the character pitch. In the Basic programming language, the command would look like this. LPRINT CHR$(27);"X";CHR$(1);CHR$(48);CHR$(0);"This is 24 point proportional spaced" Chr$(27) is ESC, chr$(1) selects proportional spacing, chr$(48) selects 24 point character size. At this time, n2 is always zero (0). 10 INPUT "Point Size";A$ Line 10 - allows you to specify the point size desired. NOTE: To halt the program, hold down the "Ctrl" key and press the "C" key. ESC ( C m1 m2 n1 n2 (Set Page Length in Defined Units) ESC ( C m1 m2 n1 n2 is the command for setting the page length in units where m1, m2, n1 and n2 are variables. The "unit" is usually 1/360 of an inch unless defined otherwise by the "ESC ( U" command. Currently, the values for m1 and m2 MUST be m1=2 and m2=0. To determine the values for n1 and n2 perform the following steps. 1. Determine the desired page length in inches. EXAMPLE 1. The page length is 8.5 inches. In the Basic programming language, the command would look like this. LPRINT CHR$(27);"(C";CHR$(2);CHR$(0);CHR$(244);CHR$(11) This command, as listed in the line above, will set the page length to 8.5 inches. NOTE: The current line becomes the top of form. This command cancels any previously set top and bottom margin settings. If you wish to set the top and bottom margins via software command, the commands must be issued AFTER the "Set Page Length in Defined Units" command. The proper page length setting can be confirmed by issuing a "Form Feed" command, chr$(12), or by pressing the "FF" button on the control panel while the printer is "Off Line". ESC ( v m1 m2 n1 n2 (Set Relative Vertical Position) ESC ( v m1 m2 n1 n2 is the command for advancing the print position vertically in units where m1, m2, n1 and n2 are variables. The "unit" is usually 1/360 of an inch unless defined otherwise by the "ESC ( U" command. Currently, the values for m1 and m2 MUST be m1=2 and m2=0. To determine the values for n1 and n2 perform the following steps. 1. Determine the desired vertical motion distance in inches. EXAMPLE 1. The desired distance is 1 inch. In the Basic programming language, the command would look like this. LPRINT CHR$(27);"(v";CHR$(2);CHR$(0);CHR$(104);CHR$(1) This command, as listed in the line above, will feed the paper up 1 inch from the current line. The current print column (horizontal position) IS NOT changed. "Reverse" paper feed less than 1/2 inch can be performed with this command. To accomplish "reverse" paper feeding requires the following steps. 1. Determine the desired vertical motion distance in inches. EXAMPLE 1. The desired distance is 1/4 inch. In the Basic programming language, the command would look like this. LPRINT CHR$(27);"(v";CHR$(2);CHR$(0);CHR$(166);CHR$(255) This command, as listed in the line above, will feed the reverse feed the paper 1/4 inch from the current line. The current print column (horizontal position) IS NOT changed. ESC ( V m1 m2 n1 n2 (Set Absolute Vertical Position) ESC ( V m1 m2 n1 n2 is the command for changing the print position vertically (with respect to the Top of Form position) in units where m1, m2, n1 and n2 are variables. The "unit" is usually 1/360 of an inch unless defined otherwise by the "ESC ( U" command. Currently, the values for m1 and m2 MUST be m1=2 and m2=0. To determine the values for n1 and n2 perform the following steps. 1. Determine the desired vertical distance from the Top of Form in inches. EXAMPLE 1. The desired distance from the Top of Form is 1 inch. In the Basic programming language, the command would look like this. LPRINT CHR$(27);"(V";CHR$(2);CHR$(0);CHR$(104);CHR$(1) This command, as listed in the line above, will position the paper 1 inch from the current Top of Form setting. For example, if the Top of Form setting is the top edge of the paper, the paper will be positioned so that the printer is ready to print 1 inch down from the top edge of the paper. ESC t n (Select Character Table) ESC t n is the command for selecting a character table to be used for printing where n is a variable. The following table lists the values for n and the character table associated with the value.
NOTE: Character tables other than those listed above can be assigned by using the ESC ( t command (Assign Character Table). The value used for n can be either the ASCII value OR the ASCII character (i.e. chr$(1) or "1"). In the Basic programming language, the command would look like this. LPRINT CHR$(27);"t";CHR$(0); CHR$(27) is ESC and CHR$(0) selects table #0 (Italic). ESC ( t n1 n2 d1 d2 d3 (Assign Character Table) ESC ( t n1 n2 d1 d2 d3 is the command for assigning character tables where n1,n2, d1, d2, and d3 are variables. Currently, variables n1, n2 and d3 MUST be n1=3, n2=0, and d3=0. Variable d1 is a number corresponding to one of the four tables selectable with the ESC t n command. This is the table that will be replaced. Valid values for d1 are 0, 1, 2, and 3 (see Table below). Variable d2 is a number corresponding to a registered table. This is the table that will replace the table indicated by variable d1. Valid values for d2 are 0, 1, 3, 7, 8, and 9 (see Table below).
After using the ESC ( t command, the ESC t n command MUST be sent to select the table before printing from the new table. For example, the command ESC ( t 3 0 1 3 0 is sent (assign Registered Table 3 (PC850) to Selectable Table 1 (PC437). In order to print the character (ASCII 245), the command ESC t 1 must be sent. In the Basic programming language, the sequence would be as follows: LPRINT CHR$(27);"(T);CHR$(3);CHR$(0);CHR$(1);CHR$(3);CHR$(0); Some ESC/P2 documentation may illustrate as many as 22 different Registered Tables. The Registered Tables are a part of the character set, therefore, they are contained in the Character Generator ROM. The CG ROM differs based upon the destination country. For this reason, only the above Registered Tables are available on LQ-570, LQ-1070, LQ-870 and LQ-1170 printers sold for the U.S. market. Foreign Character Generator ROMs ARE NOT available in the United States. The following page contains a print sample of the Registered Tables available in printers sold in the U.S. In order to print the first 31 characters in Tables 1 through 9, the ESC ( ^ command must be sent. Listed below is a Basic language program and an explanation of the program that will print various international character sets. 10 FOR Z=1 TO 6 Program Description 10 - Begin loop to print the 6 Registered Tables Note: Lines 70 through 90 will execute ONLY if the Registered Character Table to be printed is NOT table number 0. Refer to the conditional command in line 60. 70 - If the Registered Character Table number is not 0, send the Print Data as Characters command to the printer. Specifically, this command, as listed, tells the printer to print the next 31 bytes as data, not control codes. ESC ( ^ n1 n2 d1 . . . dk (Print Data as Characters) ESC ( ^ n1 n2 d1 . . . dk is the command for printing control codes as data where n1 and n2 are variables and d1 . . . dk represent the data that is to be printed as characters. The variables n1 and n2 tell the printer "the next xx ASCII codes are to be interpreted as characters instead of control codes". This command is used primarily to print displayable characters such as ASCII values 0 through 31 in Registered Tables 1 through 9 which are normally used as control codes (LF, FF, ESC, etc.) To determine the values for n1 and n2 perform the following steps. 1. Determine how many ASCII codes will be sent sequentially immediately following n1 and n2. EXAMPLE 1. The symbols for the different suits of a card deck (hearts, diamonds, clubs, and spades) are to be printed. These are each separate ASCII codes (ASCII codes 2, 3, 4, and 5 when using the PC437 Character table). In the Basic programming language, the command would look like this. LPRINT CHR$(27);"(^";CHR$(4);CHR$(0);CHR$(2);CHR$(3);CHR$(4);CHR$(5) This command, as listed in the line above, will cause the printer to print the symbols for the different suits of a card deck (hearts, diamonds, clubs, and spades). Another example of using the ESC ( ^ command is illustrated in the explanation of the ESC ( t (Assign Character Table) command.
|