home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 19 Printer / 19-Printer.zip / lp3820.zip / LP3820.INF (.txt) < prev    next >
OS/2 Help File  |  1995-06-27  |  70KB  |  2,106 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. lp3820 - Print AFP files ΓòÉΓòÉΓòÉ
  3.  
  4. lp3820 - Print AFP files on a personal laser printer 
  5.  
  6.        Ken Borgendale  -  kwb@vnet.ibm.com 
  7.  
  8.        Version  2.5a 
  9.  
  10. Many of the IBM print documents available from IBM are in the AFP (Advanced 
  11. Function Print) format, designed to be printed on the 3812, 3820, 3800-3, and 
  12. all of their successor products. These files have VM file types such as 
  13. LIST3820, LIST38PP, and PSEG3820. Most of these documents are created by DCF 
  14. (Script, BookMaster), but they are also created by other products such as GDDM, 
  15. OGL, and DisplayWrite/370. The printers which print these documents are large 
  16. shared printers attached to the host. 
  17.  
  18. The direction today is toward small, personal laser printers and inkjet printer 
  19. attached to PCs. These printers are supported by word processing packages on 
  20. the PC, but are unable to print host documents. 
  21.  
  22. The lp3820 package attempts to bridge this gap by allowing most AFP documents 
  23. to be printed on a personal laser printer. lp3820 can be used to print draft 
  24. copies, or to print distributed documents.  Some documents will not print 
  25. correctly, and the font appearance and spacing differ from the AFP fonts. 
  26.  
  27. lp3820 is a datastream converter.  It takes in an AFP file, and puts out a 
  28. personal printer datastream.  It is not designed to help you move your data 
  29. between the host and the PC (either the input or output datastreams). 
  30.  
  31. This document contains a description of how to install and use the lp3820 
  32. package. 
  33.  
  34.  
  35. ΓòÉΓòÉΓòÉ 1.1. Input types supported ΓòÉΓòÉΓòÉ
  36.  
  37. This package allows AFP documents to be printed on a personal laser printer. 
  38. The following formats of AFP documents are supported: 
  39.  
  40.    o  LIST3820 - Document for the 3820 and most other AFP printers 
  41.    o  LIST38PP - Document for the 3800 mod 3 and 6 
  42.    o  LIST4028 - Document for the 4028 (300 dpi) 
  43.    o  LIST4250 - Document for the 4250 (600 dpi) 
  44.    o  OVLY3820 - Overlay for the 3820 and most other AFP printers 
  45.    o  PSEG3820 - Page segment for the 3820 
  46.  
  47.  Page segments and Overlays are treated as one page documents. 
  48.  
  49.  Compressed images (IOCA, CCITT-G4) are not printed. 
  50.  
  51.  
  52. ΓòÉΓòÉΓòÉ 1.2. Printer types supported ΓòÉΓòÉΓòÉ
  53.  
  54. lp3820 deals with personal laser printers in several modes: 
  55.  
  56.    1. PostScript - Adobe printer language which is used in a large number of 
  57.       high end personal printers. 
  58.    2. HPPCL - HP Printer Command Language. There is full support for the HP 
  59.       LaserJet III and LaserJet 4 (PCL5). Basic support is provided for for the 
  60.       HP LaserJet II (PCL4). The Lexmark 4039 and Lexmark Optra (4049) are also 
  61.       supported. 
  62.    3. DeskJet - This can be used for HP DeskJet printers, and for printers such 
  63.       as the Lexmark 4076 (ExecJet) printers which work in DeskJet emulation. 
  64.       The page is rasterized within the computer. 
  65.    4. PPDS - Personal Printer Datastream (native mode on the IBM LaserPrinter). 
  66.       There are two variations of this datastream for the 4019 and the 4029. 
  67.       The 4029 mode uses scalable fonts not available on the 4019. A raster 
  68.       version of PPDS is available to allow full function for 4019 printers. 
  69.  
  70.  In addition to these printers, lp3820 will also allow the text of an AFP file 
  71.  into a flat file.  This can be used to extract the text from a print file, or 
  72.  to view the contents on the display. 
  73.  
  74.  In order to print text within the AFP documents, lp3820 provides a large set 
  75.  of soft bitmap fonts. lp3820 uses bitmap fonts in all printing modes. The soft 
  76.  fonts shipped with lp3820 are in PPDS mode, but are converted to HPPCL mode 
  77.  when printing in HP mode. 
  78.  
  79.  lp3820 downloads PostScript fonts in either ASCII (.pfa) or binary (.pfb) to 
  80.  either a PostScript or 4029 printer. lp3820 provides PostScript type 3 soft 
  81.  fonts for the IBM logo and extended typographic fonts. 
  82.  
  83.  
  84. ΓòÉΓòÉΓòÉ 1.3. What's new in lp3820 v2.5a ΓòÉΓòÉΓòÉ
  85.  
  86.    o  Add DeskJet (raster) support in the 16 bit DOS version. This requires XMS 
  87.       memory. 
  88.  
  89.    o  Make lp3820.inf work with the DOS 7.0 view command 
  90.  
  91.    o  Fix for retry for non-spooled output.  This is primarily for DOS but 
  92.       works in OS/2 as well. 
  93.  
  94.    o  Fix for output to OS/2 queue and change all output to use buffered mode. 
  95.  
  96.  
  97. ΓòÉΓòÉΓòÉ 1.4. What's new in lp3820 v2.5 ΓòÉΓòÉΓòÉ
  98.  
  99.    o  Support for new BookMaster Gothic Latin1 fonts. 
  100.  
  101.    o  Color support.  This works on DeskJet and PostScript printers.  It is 
  102.       possible to construct AFP files with color commands in them, but it is 
  103.       rare, so lp3820 allows colors to be specified on a font family basis, as 
  104.       well as specifying the color of rules and images. 
  105.  
  106.    o  Quality support.  Allow the specification of draft/quality for inkjet 
  107.       printers.  This setting is allowed for laser printers, but generally has 
  108.       no affect.  For inkjet printers it can have an affect on ink consumption 
  109.       and speed.  The quality can be set to draft, quality, or nodraft.  The 
  110.       nodraft setting uses the default hardware setting. 
  111.  
  112.    o  Codepage errors.  Several codepage errors in Italian, Spanish, and APL 
  113.       were fixed. 
  114.  
  115.    o  HP-PCL5 hardware duplex.  A bug in PCL5 hardware duplex was fixed. 
  116.  
  117.    o  Name handling.  The rules for parsing names without extensions was 
  118.       modified to allow file names without extensions to work. 
  119.  
  120.    o  Path lengths.  The length of allowable path was increased from 256 to 
  121.       1024. 
  122.  
  123.  
  124. ΓòÉΓòÉΓòÉ 2. Getting Started ΓòÉΓòÉΓòÉ
  125.  
  126. If you are an expert user who does not read documentation, all you have to do 
  127. is unpack the base package and optional font package into your path, customize 
  128. the profile, and set up your program object. Since you are reading this 
  129. document, you probably want that in just a bit more detail, so read on. 
  130.  
  131. lp3820 runs on OS/2 2.0 and above.  A DOS version is also available. 
  132.  
  133. You will need the following to run lp3820. 
  134.  
  135.    o  A printer which supports one of the following datastreams: 
  136.  
  137.         -  PostScript 
  138.         -  HP-PCL5 (LaserJet III, LaserJet 4, IBM 4039, DeskJet 1200) 
  139.         -  HP DeskJet (HP 5x0, IBM 4076) 
  140.         -  HP-PCL4 (LaserJet II, 4019) 
  141.         -  PPDS (IBM 4019, 4029, 4037) 
  142.  
  143.    o  Disk space (you will need extra during install) 
  144.  
  145.            PCL5, 4029 PPDS, PostScript   500K 
  146.            PCL4, 4019 PPDS, DeskJet      2.0M 
  147.  
  148.    o  The LP3820 PACKAGE 
  149.  
  150.    o  The LP3820F PACKAGE 
  151.  
  152.       This consists of a large set of soft fonts, and is not needed if you only 
  153.       plan to run in 4029 PPDS mode or PostScript mode. 
  154.  
  155.    o  Some AFP files to print.  The package is very dull if you do not have 
  156.       anything to print. 
  157.  
  158.  
  159. ΓòÉΓòÉΓòÉ 2.1. Installing lp3820 ΓòÉΓòÉΓòÉ
  160.  
  161. The installation of lp3820 consists of 6 steps: 
  162.  
  163.    1. Making a directory to put it in 
  164.  
  165.    2. Unpacking the program 
  166.  
  167.    3. Unpacking the fonts 
  168.  
  169.    4. Updating the profile 
  170.  
  171.    5. Setting the LP3820 environment variable 
  172.  
  173.    6. Making sure it all works 
  174.  
  175.  Note:  The example commands shown here may have to be changed based on what 
  176.  tools you have installed, and what directories you put things in. 
  177.  
  178.  
  179. ΓòÉΓòÉΓòÉ 2.1.1. Making a directory ΓòÉΓòÉΓòÉ
  180.  
  181. Select a drive which has enough space (2.5 meg for install, 2 meg to run) and 
  182. create a directory.  If you are not going to install the fonts, you might want 
  183. to install lp3820 in an existing directory in your path instead. For example, 
  184. the command: 
  185.  
  186.     md  c:\lp
  187.     cd  c:\lp
  188. will make a directory called lp on your c drive. This name will be used in the 
  189. following examples, but you may put it on any drive and in any directory. 
  190.  
  191.  
  192. ΓòÉΓòÉΓòÉ 2.1.2. Unpacking the program ΓòÉΓòÉΓòÉ
  193.  
  194. If you get lp3820 in a .zip file, you must use some version of unzip or pkunzip 
  195. to decompress the file. 
  196.  
  197. If you get lp3820 uncompressed, you can use the program files directly from the 
  198. CD-ROM or LAN.  You may want a private copy of lp3820.pro. You cannot use the 
  199. LAN or CD-ROM directory as your current directory if you want a modified copy 
  200. of lp3820.pro. 
  201.  
  202. The .exe file must be in your path.  You can either put the directory you just 
  203. created into your path, or move the .exe file to a directory which is in your 
  204. path. 
  205.  
  206.  
  207. ΓòÉΓòÉΓòÉ 2.1.3. Unpacking the fonts ΓòÉΓòÉΓòÉ
  208.  
  209. If you get lp382f in a .zip file, you must use some version of unzip or pkunzip 
  210. to decompress the file. 
  211.  
  212. If you will only be using lp3820 in PostScript, 4029, and Text modes you do not 
  213. need these fonts. 
  214.  
  215.     unzip lp382f
  216.  
  217. When you are all done, you can delete the .zip files. 
  218.  
  219.     del lp382f.zip
  220.  
  221. If you are using only the HP LaserJet III support, you do not need the Times or 
  222. Helvetica fonts (time*.dlf, helv*.dlf). 
  223.  
  224. If you get the fonts already decompressed, you can use them directly from the 
  225. CD-ROM or LAN by setting the LP3820 environment variable to include the 
  226. directory they are in. 
  227.  
  228.  
  229. ΓòÉΓòÉΓòÉ 2.1.4. Updating the lp3820 profile ΓòÉΓòÉΓòÉ
  230.  
  231. Before you can print using lp3820, you must tell it what kind of printer you 
  232. have.  As shipped, lp3820 has no default, and so you must either update the 
  233. profile or specify a printer name each time you invoke lp3820. 
  234.  
  235. Using your favorite editor, edit the file lp3820.pro. This is the profile for 
  236. lp3820, and it allows you to customize lp3820. 
  237.  
  238.     e lp3820.pro
  239.  
  240. You should see the entry: default = none. This specifies which of the printer 
  241. entries below is the correct one. You can override this on the command line, 
  242. but this line specifies which printer entry to use by default. You should set 
  243. this default to match your printer.  This is the name of a printer entry later 
  244. in the file. Set it to one of the following: 
  245.  
  246.  ps        Any printer in PostScript mode 
  247.  dj        HP DeskJet or compatible (Lexmark 4076) 
  248.  hp        HP LaserJet II or compatible (including 4019 in HP mode) 
  249.  hp3       HP LaserJet III (PCL5) or compatible 
  250.  hp4       HP LaserJet 4 or compatible 
  251.  4019      IBM LaserPrinter 4019 in PPDS mode. 
  252.  4029      IBM LaserPrinter 4029 in PPDS mode (also 4037). 
  253.  4039      IBM LaserPrinter 4039 (PCL5 mode) 
  254.  text      Use no printer, but just extract the text 
  255.  none      Require that a name be specified on the command 
  256.  
  257.  Note:  There are some additional example printer descriptions in the profile, 
  258.  including ps2up and ps4up. 
  259.  
  260.  If you are outside North America, you are probably using A4 paper and not 
  261.  letter size.  You must tell lp3820 what paper you are using. Set the paper 
  262.  entry at the top of the file to the normal size paper you use.  You can 
  263.  override this within an individual printer entry. 
  264.  
  265.  If your printer is not attached to lpt1, or you are are not using a printer, 
  266.  you should change the port entry. Make this change in the entry you have set 
  267.  as the default. Give the name of a device file, disk file, or a file extension 
  268.  starting with a dot. 
  269.  
  270.  In OS/2, you can use the name of a logical printer.  This allows you to direct 
  271.  output to a particular logical printer even if it does not have a character 
  272.  device associated with it.  The name given is a colon (:) followed by the 
  273.  physical name of the logical printer.  This shows up in the View tab of the 
  274.  settings. 
  275.  
  276.  You can set up more than one printer by changing the entries in lp3820.pro. 
  277.  You can create your own printer entries with a set of options, and specify 
  278.  this as the second operand on the lp3820 command. 
  279.  
  280.  There are several other global profile settings which you may wish to change, 
  281.  such as the default extension for documents, and the extensions for PSEGs and 
  282.  overlays. 
  283.  
  284.  
  285. ΓòÉΓòÉΓòÉ 2.1.5. Setting the LP3820 variable ΓòÉΓòÉΓòÉ
  286.  
  287. lp3820 needs to know where its files are.  You can do this in several ways: 
  288.  
  289.    1. Run with all files lp3820 needs in the PATH. 
  290.  
  291.    2. Run with all files lp3820 needs in the current directory. (This is 
  292.       actually just a subset of the first). 
  293.  
  294.    3. Set an environment variable lp3820 giving a path to locate the files. 
  295.       The .exe file must still be in the path. This option gives maximum 
  296.       flexibility. 
  297.  
  298.  You can set the lp3820 variable to several directories, including any place 
  299.  you keep soft fonts. 
  300.  
  301.       set lp3820=c:\lp;c:\pclfonts
  302.  
  303.  This statement should be placed in your autoexec.bat in DOS, and in your 
  304.  config.sys for OS/2. 
  305.  
  306.  
  307. ΓòÉΓòÉΓòÉ 2.1.6. Testing the installation ΓòÉΓòÉΓòÉ
  308.  
  309. With any luck, lp3820 will now work.  To test it out, a one page document is 
  310. included in the package.  To print it, type: 
  311.  
  312.     lp3820 lptest
  313.  
  314. This should show you an IBM Logo and several normal fonts, including some 
  315. symbols (left arrow, theta, right arrow) on the last line. This will also show 
  316. the version of lp3820. 
  317.  
  318. Now extract the text from the file by typing: 
  319.  
  320.     lp3820 lptest.afp text
  321.  
  322. You should have the file lptest.doc on your disk. 
  323.  
  324. You should also try lp3820 out on one of your own documents. To do this, 
  325. download any LIST3820 document.  Remember to download the file in binary. 
  326.  
  327. If you are using almcopy, you may wish to update the file ALMCOPYX NAMES to 
  328. change the mapping of LIST3820 and LIST38PP files to the extension .afp, and to 
  329. make this conversion an automatic binary conversion.  You will also want to 
  330. change the mapping of PSEG3820 and OVLY3820 to binary. 
  331.  
  332. lp3820 allows you to default the afp file extension.  This is normally set to 
  333. '.afp', but can be changed in the profile. 
  334.  
  335. Note:  If you are using OS/2, you must either have the print driver set to 
  336. IBMNULL, or have it set to the printer matching the datastream you tell lp3820 
  337. to create. 
  338.  
  339.  
  340. ΓòÉΓòÉΓòÉ 2.1.7. Printing Documents ΓòÉΓòÉΓòÉ
  341.  
  342. Before you can print a file, you have to have one. AFP files are generated on 
  343. the host, so you must download them to the PC to print them. 
  344.  
  345. Note:  AFP files must be downloaded in binary. lp3820 also supports files 
  346. downloaded with the almcopy /SOURCEBIN option. 
  347.  
  348.  
  349. ΓòÉΓòÉΓòÉ 2.2. The DOS version of lp3820 ΓòÉΓòÉΓòÉ
  350.  
  351. The DOS version of lp3820 runs in DOS 3.3 and above.  It requires at least a 
  352. 80286. It requires about 400KB of memory, but this varies based on which 
  353. printer is used and the complexity of the document. 
  354.  
  355. The DOS executable is shipped as lp3820d.exe.  It can be used with that name, 
  356. or renamed to lp3820.exe.  If you get just the DOS executable, you will need to 
  357. get the rest of the OS/2 package. (lp3820.pro and lp3820.ftb). 
  358.  
  359. To print in DeskJet and rasterized 4019 mode while in DOS, lp3820 uses Extended 
  360. Memory (XMS).  You must have himem.sys or a similar memory manager in your 
  361. config.sys for this to run.  You must have 1.1Mb of XMS memory available to run 
  362. a normal DeskJet page.  To print in color you need 4.4Mb or XMS memory. 
  363.  
  364. While in DOS, the amount of XMS memory available is based on the real memory of 
  365. your machine above the 640K limit.  In a command prompt from within Windows, 
  366. and in an OS/2 DOS session, the amount of XMS memory can be specified using DOS 
  367. settings. 
  368.  
  369. The use of extended memory can cause lp3820 to run slowly when printing for a 
  370. DeskJet.  This happens when printing in landscape mode, and when printing 
  371. vertical lines. 
  372.  
  373.  
  374. ΓòÉΓòÉΓòÉ 2.3. The lp3820 OS/2 program object ΓòÉΓòÉΓòÉ
  375.  
  376. lp3820 is a datastream converter and is designed to be run from a command file 
  377. or command line.  However, it is possible to set it up to run from the OS/2 
  378. desktop, and to participate in drag and drop. 
  379.  
  380. To set up the program object, set the path name to the file name where you keep 
  381. lp3820.  This should show you the lp3820 icon which contains a page, a laser 
  382. printer, and a red arrow.  Set the working directory to the directory 
  383. containing lp3820.pro and lp3820.ftb. 
  384.  
  385. Set the Parameters field to [] %* followed by the name of your default printer 
  386. (an entry in lp3820.pro). You can set up several program objects with different 
  387. printer names. For instance, to set up an lp3820 program object to print in 
  388. PostScript two per page you could set the Parameters field to: 
  389.  
  390.     [] %* ps2up
  391.  
  392.  
  393. ΓòÉΓòÉΓòÉ 3. AFP and Personal Laser Printers ΓòÉΓòÉΓòÉ
  394.  
  395. lp3820 can often do a very good job at printing AFP documents on a personal 
  396. laser printers.  However, there are some documents which do not print 
  397. correctly, and there are some cases when the appearance is wrong.  To 
  398. understand why this occurs, you should understand the differences between the 
  399. host printers and their fonts, and the personal laser printers and fonts. 
  400.  
  401.  
  402. ΓòÉΓòÉΓòÉ 3.1. Resolution ΓòÉΓòÉΓòÉ
  403.  
  404. Most AFP documents are designed for the printers which print at 240 dots per 
  405. inch. Personal page printers are mostly 300 dpi. Thus, the same fonts cannot be 
  406. used, and images must be scaled at a 4 to 5 ratio. 
  407.  
  408. Using the -ns option, you can scale the text instead of the image.  This gives 
  409. better looking images, but the page is only 80% of the normal size. 
  410.  
  411. Using the -ni option, you can leave the text the correct size, and print the 
  412. image at 1:1 pels, which reflects a 20% size reduction.  The image is aligned 
  413. at the upper left corner on the physical page. 
  414.  
  415. It is allowed to have 300dpi or 600dpi PSEGs within a document which is 
  416. otherwise 240 dpi. This would normally be done by having external PSEGs at a 
  417. differing resolution, but the PSEGs may be internal to the document. 
  418.  
  419. lp3820 can print documents formatted at 300 pel (4028). You should use the core 
  420. interchange fonts when doing this. 
  421.  
  422.  
  423. ΓòÉΓòÉΓòÉ 3.2. PC Datastream differences ΓòÉΓòÉΓòÉ
  424.  
  425. The goal of lp3820 is to create the same output regardless of which output 
  426. datastream is selected.  However, there are several cases where this does not 
  427. happen.  There are also performance differences between the various 
  428. datastreams. 
  429.  
  430. If your printer can only do one of the datastreams, you can skip this section, 
  431. and just select that one. However, there are a number of printers (such as the 
  432. IBM LaserPrinter) which can do all or several of them. 
  433.  
  434.  
  435. ΓòÉΓòÉΓòÉ 3.2.1. HP-PCL ΓòÉΓòÉΓòÉ
  436.  
  437. The HP-PCL5 support (LaserJet III, LaserJet 4, Lexmark 4039) gives a full 
  438. function support including scalable fonts and image compression. 
  439.  
  440. The HP-PCL5 datastream is normally small and fast. The datastream usually 
  441. contains downloaded characters, and thus must be processed in binary. 
  442.  
  443. The hp3, and hp4, and 4039 entries are almost idential. The different printer 
  444. entries are mostly used to describe the resident font differences between the 
  445. printers. 
  446.  
  447. The HP-PCL4 support can be used on almost all laser printers including all IBM 
  448. LaserPrinters. It is the least functional of the various data streams and 
  449. cannot support mixed orientation. You can use the HP rastermode (hpx) to get 
  450. full function printing on a PCL4 printer. 
  451.  
  452. HP-PCL is not able to do separate horizontal and vertical scaling of scalable 
  453. fonts. 
  454.  
  455. Note:  If your printer default is not set to the size paper you have selected 
  456. using the paper entry, you may need to force the paper size using a setup 
  457. option.  An example of this is shown in lp3820.pro. 
  458.  
  459.  
  460. ΓòÉΓòÉΓòÉ 3.2.2. PostScript ΓòÉΓòÉΓòÉ
  461.  
  462. PostScript is the most functional of the datastreams, but it is often the 
  463. slowest.  It is especially slow for image document, small document, and 
  464. documents containing raster fonts. 
  465.  
  466. All functions are available in PostScript.  Images and margins work correctly 
  467. with scaling. 
  468.  
  469. If your printer handles PostScript level 2 (such as the LaserJet 4 and Lexmark 
  470. Optra printers) you should use the printer description "ps2" which allows for 
  471. compression of images. 
  472.  
  473. The datastream contains only printable characters, and does not have to be 
  474. processed as binary.  The output file can be freely edited.  Line lengths are 
  475. kept to below 128 bytes. (Note that using the binary option will create a 
  476. datastream without these characteristics). 
  477.  
  478. Even though you have PostScript, you might want to set up your printer to run 
  479. HP-PCL5 or PPDS mode for documents unless you use the multiup or scaling 
  480. functions. 
  481.  
  482.  
  483. ΓòÉΓòÉΓòÉ 3.2.3. PPDS ΓòÉΓòÉΓòÉ
  484.  
  485. PPDS is the native datastream of the IBM LaserPrinter. lp3820 was originally 
  486. designed for PPDS, and much of the font support is based on the PPDS model. 
  487.  
  488. On the 4029, the only function missing from PPDS mode is the multi-up 
  489. capability.  On the 4019, mixed orientation documents also do not work. 
  490. However, you can use the 4019 raster mode (4019x) to get mixed orientation. 
  491.  
  492. Using the scale function with images sometimes gives undesired results. 
  493.  
  494. If you have a 4029, image printing is by far the fastest using 4029 PPDS mode, 
  495. since the images are compressed when sent to the printer. 
  496.  
  497. The datastream usually contains downloaded characters, and thus must be 
  498. processed in binary. 
  499.  
  500.  
  501. ΓòÉΓòÉΓòÉ 3.2.4. Raster ΓòÉΓòÉΓòÉ
  502.  
  503. In the raster version of HPPCL and PPDS, the entire page is rasterized in the 
  504. PC, and downloaded to the printer as an image.  This is designed to allow 
  505. printing on an HP DeskJet, but can also be used on the 4019 to allow rotated 
  506. print. 
  507.  
  508. Raster mode uses only bitmap fonts.  No scalable fonts are supported. 
  509.  
  510. The DeskJet has very large margins and therefore has even more problems 
  511. printing output which fills the entire 3820 page. The top margin is 0.4i (10mm) 
  512. and the bottom margin is 0.5i (13mm). If you are missing the footers from 
  513. pages, try adding "scale 98 100" to the printer entry. 
  514.  
  515. HP-PCL mode raster (hpx) files print fine on DeskJet and PCL5 printers. To 
  516. print on a PCL4 printer such as a LaserJet II, it is necessary to turn off 
  517. image compression.  Use option noimgcomp in the printer description. 
  518.  
  519. HP-PCL color raster mode will print in color (on a color printer), but requires 
  520. both more time and memory on the PC. 
  521.  
  522. 4019 mode raster (4019x) files print on any 4019 or 4029 printer. All 4029 and 
  523. some late model 4019 printers allow image compression (option imgcomp).  If the 
  524. output is not correct. use option noimgcomp. 
  525.  
  526.  
  527. ΓòÉΓòÉΓòÉ 3.3. Font Differences ΓòÉΓòÉΓòÉ
  528.  
  529. Most of the fonts used by DCF are from the Sonoran family of fonts (Sonoran 
  530. Serif and Sonoran Sans Serif). These are rasterized fonts designed for the 240 
  531. dpi printers, and separately hand tuned at each size. The metrics do not scale 
  532. uniformly as the font size is increased. 
  533.  
  534. The soft fonts provided with the lp3820 package are based on the industry 
  535. standard font metrics which scale correctly. 
  536.  
  537. Because the metrics do not match between the AFP and soft fonts, characters do 
  538. not look to be correctly placed.  lp3820 normally places each character at the 
  539. pel (at 300 dpi) closest to the correct position in the AFP document (at 240 
  540. dpi). For PostScript, word averaging is used, which makes this look a little 
  541. better. 
  542.  
  543. Note:  If your site has the Core Interchange Fonts available, these should be 
  544. used, as the metrics of these fonts match the industry standard metrics used by 
  545. lp3820. 
  546.  
  547.  
  548. ΓòÉΓòÉΓòÉ 3.4. Font Set ΓòÉΓòÉΓòÉ
  549.  
  550. When you use DCF to create an AFP document, you format it using a set of AFP 
  551. fonts which are installed on your S/370. Many sites have over 100 Mb of AFP 
  552. fonts installed (they are of course shared between all users). 
  553.  
  554. lp3820 has internal support for many of the fonts shipped by IBM, and a 
  555. selection of Internal Use fonts. However, it is quite possible that some fonts 
  556. which are available at your site are not internally supported by lp3820. 
  557.  
  558. lp3820 ships a set of soft fonts, but the number of fonts were restricted to 
  559. keep the size for the lp3820 package below 2Mb. lp3820 ships fonts for 8, 9, 
  560. 10, 11, 12, 14, 16, 18, 20, and 24 points. 
  561.  
  562. If you wish to take up more room on your disk, you can install additional soft 
  563. fonts for the other sizes. You must update the lp3820 profile to tell lp3820 
  564. what fonts are available. 
  565.  
  566. Any available HP or PPDS soft fonts can be used.  However, it is very important 
  567. that you correctly identify to lp3820 the codepage that the font is in. 
  568.  
  569.  
  570. ΓòÉΓòÉΓòÉ 3.5. Code Pages ΓòÉΓòÉΓòÉ
  571.  
  572. AFP supports an arbitrary number of code pages, by reading the code page 
  573. information from a file.  The soft fonts used by lp3820 do not have enough 
  574. information to use this strategy. lp3820 has internal tables for a large set of 
  575. code pages. 
  576.  
  577. If you are using a codepage which lp3820 does not understand, you can create a 
  578. synonym using the afpcode profile entry. 
  579.  
  580.  
  581. ΓòÉΓòÉΓòÉ 4. lp3820 Command Options ΓòÉΓòÉΓòÉ
  582.  
  583. lp3820 is designed to be run from a command line or command file. If lp3820 is 
  584. entered with no options, it will prompt for file name, printer, page range, and 
  585. output file. 
  586.  
  587.     lp3820  afpfile printer  -options
  588.  
  589. Entries without a leading dash are considered to be names.  The first name is 
  590. the input file name, and the second is the name of the printer description. 
  591.  
  592.  afpfile   The name of an AFP file is required.  This gives the name of the 
  593.            file to print.  The name can be specified as a - to indicate the 
  594.            file should come from stdin.  This allows lp3820 to run as a filter. 
  595.            lp3820 will default the extension if none is given. 
  596.  
  597.  printer   If a second name is given, it is used as the name of a printer entry 
  598.            in the lp3820.pro.  The default if this is not specified is to use 
  599.            the printer description named in the default statement. 
  600.  
  601.  Options begin with either a hyphen(-). Additional characters of the option can 
  602.  be specified and are ignored. On OS/2 and DOS the slash (/) character is also 
  603.  normally allowed. 
  604.  
  605.  -?        Get short help on the command line options. This is short and 
  606.            designed to fit on one screen. 
  607.  
  608.  -??       About lp3820.  Show the author, version, and copyright notices for 
  609.            lp3820. 
  610.  
  611.  -f        File:  Override the printer port.  The operand is a filename. The 
  612.            file name can be either the next operand, or part of the current 
  613.            operand following a colon or equals.  The following are all valid: 
  614.  
  615.                           -f outfile.ps
  616.                           -file:lpt2
  617.                           /f=c:\temp\out.pcl
  618.                           /f :postscri
  619.                           -f -
  620.  
  621.  -fd       Formdef:  Override the formdef.  The operand is the name of a 
  622.            formdef.  This is processed instead of the formdef specified in the 
  623.            printer description. 
  624.  
  625.            Note:  If the document contains a formdef, that formdef within the 
  626.            document is used.  Using an internal formdef is not recommended, but 
  627.            allows function such as the ability to change paper source on a per 
  628.            page basis.  However, the formdef sets the paper size, which lp3820 
  629.            will treat as correct. 
  630.  
  631.  -p        Page range:  Specify a range of pages to print. This takes one or 
  632.            two page names as operands. These can be specified as * to indicate 
  633.            the start or end of the document. If only one page is specified, 
  634.            then only that page is printed. 
  635.  
  636.            The pages must be separate operands.  Be careful not to put the 
  637.            printer name after a single page, it will be considered the ending 
  638.            page number.  These are all valid page ranges: 
  639.  
  640.                           -p 2
  641.                           -p 3 5
  642.                           -page iii 3-19
  643.                           /p 5 *
  644.  
  645.  -pn       Page number range:  Specify the range numerically from the start of 
  646.            the file.  This allows printing a page range when the page names 
  647.            contain duplicates. 
  648.  
  649.            The page number range is specified by two numbers. The first operand 
  650.            is the count of pages from the start of the file. This must be 
  651.            specified. The second operand is the count of pages to print.  The 
  652.            default is one. Be careful not to put the printer name after the 
  653.            start page number. These are all valid page number ranges: 
  654.  
  655.                           -pn 1
  656.                           -pn 5 2
  657.                           /pn 1 10
  658.  
  659.  -co       Copies:  Specify a number of copies.  The copy count is a separate 
  660.            operand, or follows a equal (=) or colon (:). This value is put into 
  661.            the datastream, and it is up to the printer to honor this count. 
  662.            Normally, this will cause the copies to come out uncollated (n 
  663.            copies of each page).  All copies come from the same source. 
  664.  
  665.            These are valid copies: 
  666.  
  667.                           -co=3
  668.                           -co:2
  669.                           /copies 3
  670.  
  671.  -q        Quiet: Do not give status information.  If this is selected, only 
  672.            fatal error messages will cause any output.  This is designed to be 
  673.            used when lp3820 is being used without the user being aware of it. 
  674.  
  675.  -d        Debug: Show additional messages. This should be used when modifying 
  676.            the profile, or when trying to determine why lp3820 is not giving 
  677.            you the expected results. 
  678.  
  679.  -dx       Duplex:  Use hardware duplex.  This is the same as placing the 
  680.            option "duplex on" in the printer description. 
  681.  
  682.  -s        Source: Specify the paper source as 1, 2, M, or 3. Two sources can 
  683.            be specified, the first is used for the first page, and the second 
  684.            from subsequent pages.  If only one paper source is given, it is 
  685.            used for all pages.  The value is put into the data stream, and it 
  686.            is up the the printer to use it.  By default, the hardware default 
  687.            paper source is used. 
  688.  
  689.            Examples of valid paper source specifications are: 
  690.  
  691.                           -s2
  692.                           -s21
  693.                           /sm1
  694.  
  695.  -odd      Do the odd page pass of a two-pass duplex. Note that even and odd 
  696.            are in relation to the specified page range. They do not refer to 
  697.            the number printed at the bottom of the page. The duplex option in 
  698.            the printer description can also specify that the even and odd refer 
  699.            to ranges of pages.  This is used with multi-up. 
  700.  
  701.  -even     Do the even page pass of a two-pass duplex. 
  702.  
  703.  -a        Average sync; set the cursor position for each word, and average the 
  704.            font size differences over the size of the word. This only works in 
  705.            PostScript.  It is the default, and works like character sync for 
  706.            other data streams. 
  707.  
  708.  -c        Character sync: set cursor position for each character This is the 
  709.            normal default for all printers except PostScript, and need not be 
  710.            specified unless the printer entry was changed. 
  711.  
  712.  -n        No sync: set cursor position only on absolute moves. This creates a 
  713.            smaller output file, but the results can look very strange if the 
  714.            font substitution is not exact. 
  715.  
  716.  -ns       No scale images: do not scale images, but leave them smaller.  The 
  717.            entire page is scaled down 5 to 4.  This option also sets the left 
  718.            margin.  This is useful for full page images such as those created 
  719.            by PS/370.  This option only works if the images are 240 pel. 
  720.  
  721.  -ni       Small images: print the images as if they were 300 dpi, but do not 
  722.            alter the text size.  This leaves the images appearing 20% reduced 
  723.            in size.  The images are aligned at the upper left corner on the 
  724.            physical page.  This is useful for cases of a small image on the 
  725.            page.  This option only works if the text and images are 240 pel. 
  726.  
  727.  -x        Extract an internal file. lp3820 uses many files which are packed 
  728.            into a font metrics files (.ftb). You can extract these to view or 
  729.            modify them. Note that there is no way to replace them if you modify 
  730.            them, but you can use them as external rather than internal files. 
  731.            This option is also used to decompress .dlf files. 
  732.  
  733.  -xl       List files in a font metrics file (.ftb). This gives a list of all 
  734.            internal files with their type, size, and in most cases a comment. 
  735.            You can specify the name of the metrics file, but it must be one of 
  736.            those in the metrics entry in the profile. 
  737.  
  738.  -z        Send messages to stdout.  Normally messages are sent to stderr, but 
  739.            in some environments this cannot be redirected. Using this option 
  740.            causes all messages to be sent to stdout.  You should not redirect 
  741.            both messages and output to stdout. 
  742.  
  743.  
  744. ΓòÉΓòÉΓòÉ 5. lp3820 Functions ΓòÉΓòÉΓòÉ
  745.  
  746. This section describes some of the functions of lp3820. This is designed to 
  747. help you use the product correctly. 
  748.  
  749.  
  750. ΓòÉΓòÉΓòÉ 5.1. Page Names ΓòÉΓòÉΓòÉ
  751.  
  752. In AFP, page names are an 8 character string.  The page name is given in the 
  753. start and end page controls.  lp3820 uses this name to show progress, and to 
  754. allow selection of a range of pages to print. 
  755.  
  756. Although the page names are often numeric, they are not always so. It is very 
  757. common to start a document with roman numerals. When using folio by chapter, 
  758. the page name contains the chapter name, and some punctuation. It is also 
  759. possible to have duplicate page names. 
  760.  
  761. lp3820 treats the 8 characters as a string, and matches against it in a case 
  762. independent manor (thus ii and II are the same). 
  763.  
  764. If there are duplicate page names, only the first one is selected as a begin 
  765. page, and the first occurrence after the begin is selected as the end page. 
  766.  
  767.  
  768. ΓòÉΓòÉΓòÉ 5.2. Duplex ΓòÉΓòÉΓòÉ
  769.  
  770. lp3820 supports printers with hardware duplex in PCL5 and PostScript. Most 
  771. personal page printers do not have a duplex function, but this can be simulated 
  772. by writing every other page, and putting the paper thru the printer twice. 
  773.  
  774. lp3820 allows the simulation of duplex by the use of the -even and -odd 
  775. options.  These specify that only half of the pages will be printed in each 
  776. run. To print a duplex document, you would call lp3820 twice.  Once to print 
  777. the even pages, and a second time to print the odd pages. 
  778.  
  779. Even or Odd is determined based on the count of pages in the page range.  Using 
  780. the duplex or multiup entries in the profile, it is possible to specify that 
  781. sets of pages are to be thought of as even or odd. 
  782.  
  783. Note:  Sending the paper multiple times thru the printer is not officially 
  784. supported, although it seems to work OK on most printers.  If you have a 
  785. problem with paper curl, using duplex will probably make it much worse. 
  786.  
  787.  
  788. ΓòÉΓòÉΓòÉ 5.3. Top and Left Margins ΓòÉΓòÉΓòÉ
  789.  
  790. The settings for top and left margins are an attempt to compensate for the fact 
  791. that the printable area on most personal page printers is smaller than the 
  792. 3820. It also compensates for the fact that printers in HP mode do not measure 
  793. from the paper edge, but from the printable edge, which varies by model. 
  794.  
  795. The value specifies the amount to move the page to the top or left on the 
  796. paper.  Since it is most normal to want to move the contents down and to the 
  797. right, these values are often specified as negative. 
  798.  
  799. Top and left refer to the top and left of the page as it moves thru the 
  800. printer, not the top and left of the text.  The exception to this is 4019 
  801. landscape mode.  Since the 4019 does not correctly implement orientation, the 
  802. orientation change is faked using landscape orientation, and the top and left 
  803. are based on landscape orientation. 
  804.  
  805.  
  806. ΓòÉΓòÉΓòÉ 5.4. Mixed orientation ΓòÉΓòÉΓòÉ
  807.  
  808. lp3820 processes files with mixed orientation on PostScript, 4029 PPDS, and 
  809. PCL5 (hp3 and hp4) printers. Mixed orientation does not work in 4019 PPDS or in 
  810. HPPCL4 (hp). Mixed orientation works in raster mode, and this mode can be used 
  811. to print mixed orientation pages on 4019 and PCL4 printers. 
  812.  
  813. A very restricted form of landscape works in 4019 PPDS mode. A page is printed 
  814. landscape if the first control on the page is a Set Orientation for 90 or 270. 
  815. Images are not properly rotated. 
  816.  
  817. Note:  For mixed orientation to work correctly, lp3820 must know the size of 
  818. paper in your printer.  If the page size and paper size do not match, lp3820 
  819. will attempt to align one on the other. This can cause errors if these sizes 
  820. are not set correctly. You can force lp3820 to ignore the page size by using 
  821. "option noalign".  Other alignment options allow you to set the vertical 
  822. alignment to top, center, or bottom. 
  823.  
  824.  
  825. ΓòÉΓòÉΓòÉ 5.5. PostScript Multi-up ΓòÉΓòÉΓòÉ
  826.  
  827. When using PostScript, it is possible to print multiple logical pages on the 
  828. same physical page.  This is known as multi-up (as in 2-up or 4-up).  This 
  829. function does not work in PPDS or HPPCL mode. 
  830.  
  831. A set of printer descriptions is shipped with lp3820 which use the multi-up 
  832. capability of lp3820 (ps1up, ps2up, and ps4up). These can be used directly, you 
  833. can modify them create additional printer entries based on these. 
  834.  
  835. Several options are implemented. 
  836.  
  837. The multi-up capability can also be used as an example of how to customize the 
  838. PostScript by modifying some of the procedures. You can do this without 
  839. completely changing the header file. The proc sets are downloaded to the 
  840. printer by telling lp3820 they are fonts. 
  841.  
  842. You can modify these procs, or create your own.  To modify them, just extract 
  843. them for lp3820.ftb (using the -x option).  Change your profile to use your 
  844. external version, and then make the modifications. 
  845.  
  846.  
  847. ΓòÉΓòÉΓòÉ 5.6. Color printing ΓòÉΓòÉΓòÉ
  848.  
  849. The traditional printers for which AFP files were directed were monochrome 
  850. printers.  It is very rare to have color specifications within AFP files.  The 
  851. laser printers on which lp3820 was first run were also monochrome printers. 
  852.  
  853. There are now a class of color printers for which lp3820 works. These are 
  854. basically DeskJet printers with 4 color print capability, but also include some 
  855. PostScript printers. 
  856.  
  857. lp3820 allows the use of color in a normal AFP file by allowing a color to be 
  858. specified for font families, rules, and images. The normal use of this would be 
  859. to provide headlines or examples in an alternate color.  This is done using the 
  860. color entry in the profile. 
  861.  
  862. As an example, if the text is in Times Roman, and the headlines are in 
  863. Helvetica bold, you could make the headlines print in red using the following 
  864. command: 
  865.  
  866.     color helvb red
  867.  
  868. Color works for HP-PCL raster (DeskJet mode), PostScript, and HP-PCL5 (DeskJet 
  869. 1200).  To enable color, you must use option color in the profile entry.  This 
  870. is not defaulted on for any printer type. 
  871.  
  872. In DeskJet mode, using this option will require four times as much system 
  873. memory (about 4Mb) and about 4 times as much processing time on the page. 
  874. There is no significant change in the size of the datastream unless the 
  875. document contains color.  The color option should only be used on newer 
  876. DeskJets which support color.  You should be careful using this option on 3 
  877. color DeskJet printers (such as the 500C and 540) since they print black by 
  878. overprinting cyan, yellow, and magenta. 
  879.  
  880. In PostScript mode, this option has no cost.  On monochrome printers, the 
  881. colors will show up as shades of gray (dithered). 
  882.  
  883.  
  884. ΓòÉΓòÉΓòÉ 5.7. Extracting files from lp3820.ftb ΓòÉΓòÉΓòÉ
  885.  
  886. Many of the tables used by lp3820 are in internal files. These are contained 
  887. within the file lp3820.ftb. Putting the files together reduces clutter and disk 
  888. usage, and significantly increases performance. However, it causes some 
  889. problems if you need to modify one of these files. 
  890.  
  891. The file lp3820.ftb is created (compiled) as part of the build of lp3820. 
  892. There is no mechanism to update this file, but you can extract any of the 
  893. subfiles, modify it, and then use the external file instead of the internal 
  894. file. 
  895.  
  896. The internal files are font width tables (.fwt), font translation tables 
  897. (.ftt), profiles, and fonts. Since some compression of font width tables is 
  898. done as part of the compilation of lp3820.ftb, the extracted file is not 
  899. exactly the same as the original .ftb file, but no material information is 
  900. lost. 
  901.  
  902. To extract the internal files, you must know the internal file name.  You can 
  903. specify the external name, or allow it to be defaulted. To extract an internal 
  904. file use lp3820 with the -x option, and the internal name and optionally the 
  905. external name. For instance, the command: 
  906.  
  907. lp3820 !std4029 -x
  908. will extract the internal file !std4029 and create the external file 
  909. !std4029.pro. 
  910.  
  911. lp3820 !lplogo -x lplogo.psh
  912. will extract the file !lplogo and put it into the file lplogo.psh. 
  913.  
  914. Internal file names are up to 8 characters long, and have no extension. 
  915. Searching is done case-independent. 
  916.  
  917. Font width files start with the letter C and have the name of the AFP font. 
  918. Font translation tables start with a T and have the name of the associated code 
  919. page. Soft fonts use the normal lp3820 soft font naming convention (four char 
  920. class, two char size, one char attribute). Internal profiles and other related 
  921. files start with an exclamation mark (!). 
  922.  
  923. To get a list of files which can be extracted from the metrics files, use the 
  924. -xl option of lp3820.  With no operand, it gives a list of the internal files 
  925. of the first metrics file. If the operand matches the name of an open metrics 
  926. file, it uses that instead. 
  927.  
  928.     lp3820 -x -f out
  929.  
  930. The extract list gives the name, type, size, and an optional comment.  Internal 
  931. file names are case independent. The following types are given: 
  932.  
  933.  dlf       Download font (PPDS font) 
  934.  ftt       Font translation table (afp codepage) 
  935.  fwt       Font width table (afp font metrics) 
  936.  pfb       Adobe type 1 font 
  937.  pro       Profile include (flat file) 
  938.  psh       PostScript header 
  939.  
  940.  The size is given as bytes in the ftb file.  The extracted size may vary. 
  941.  
  942.  The comment is derived from the file information, and is not available for 
  943.  some file types. 
  944.  
  945.  
  946. ΓòÉΓòÉΓòÉ 6. lp3820 Profile ΓòÉΓòÉΓòÉ
  947.  
  948. The lp3820 profile is kept in the file lp3820.pro.  For examples of the items 
  949. discussed below, you should look in this file. 
  950.  
  951. The file lp3820.pro is search for using the current directory, LP3820, and PATH 
  952. environment variables (in that order). You will probably want a private copy of 
  953. the profile, even if you normally run lp3820 directly from a CD-ROM or LAN. 
  954.  
  955. The profile is made up of lines.  On each line is either a comment or a profile 
  956. entry. Lines starting with an blank, tab, or asterisk (*) are comments. 
  957.  
  958. Profile entries have a keyword starting at the beginning of the line. The 
  959. keyword can be in any case. The keyword is followed by an optional equal sign, 
  960. and operands. Any characters following the last operand on a line are ignored, 
  961. and can be used as comments. 
  962.  
  963. * This is a comment
  964.   This is a comment
  965. default = none          <- This is a comment
  966.  
  967. The profile is broken into three sections.  The first section describes the 
  968. global lp3820 environment.  This is followed by a set of printer descriptions. 
  969. The final section describes the AFP environment, and works for all printers. 
  970. The final section is normally just a single includeall of !stdafp, but this is 
  971. the area for customization of the AFP environment. 
  972.  
  973. Printer Description Entries exist within a printer description, and only have 
  974. effect for that printer.  These entries are used to describe a particular 
  975. printer.  These are stanzas in Unix terminology. 
  976.  
  977. In some cases, entries found before the first printer description are defaults 
  978. for all printer descriptions.  These are documented in the individual entries. 
  979.  
  980. Font Mapping Entries do not exist within an printer description, but apply to 
  981. all printers. 
  982.  
  983. To map a from an AFP font to a soft font, lp3820 needs the following 
  984. information: 
  985.  
  986.    o  The width of each character in the font 
  987.  
  988.    o  The font class, size, and attribute to substitute 
  989.  
  990.    o  The file name of the soft font 
  991.  
  992.    o  The code page and contents of the soft font 
  993.  There are two places it gets this information. 
  994.  
  995.    1. The file lp3820.ftb contains a list of supported AFP fonts, as well as 
  996.       metrics, and default substitution tables. 
  997.  
  998.    2. Font mapping entries in the lp3820.pro allow for adding and overriding 
  999.       entries in lp3820.ftb. 
  1000.  
  1001.  If the first character of lp3820 is an asterisk (*) then the third character 
  1002.  is used to indicate the second option starter character for command line 
  1003.  processing.  Hyphen is always allowed, and the default second option character 
  1004.  is selected by operating system. The second starter character can be hyphen 
  1005.  (-), plus (+), slash (/), or exclam (!). A space retains the default. 
  1006.  
  1007.  
  1008. ΓòÉΓòÉΓòÉ 6.1. AFPCODE ΓòÉΓòÉΓòÉ
  1009.  
  1010. The AFPCODE entry allows you to specify the existence of a code page not 
  1011. internally supported by lp3820. The operands are the name it is known by in 
  1012. AFP, and the file name of the .ftt file. 
  1013.  
  1014. AFP code page names normally start with T1. 
  1015.  
  1016.     afpcode  XAPL2     t1000293  APL2
  1017.     afpcode  t1001002  mon       DCF compatibility
  1018.  
  1019.  
  1020. ΓòÉΓòÉΓòÉ 6.2. AFPCF ΓòÉΓòÉΓòÉ
  1021.  
  1022. An AFPCF entry allows you to specify a coded font. DCF does not use coded 
  1023. fonts, but other AFP producers do. A coded font consists of a font and a 
  1024. codepage. 
  1025.  
  1026. The entry is the name of the coded font (which normally starts with an X), the 
  1027. name of a font (which normally starts with a C) and the name of a codepage 
  1028. (which normally starts with a T). 
  1029.  
  1030.     afpcf  X1MYFONT C0H20000 T1GI0361
  1031.     afpcf  X1MONO   C0420000 T1GI0386
  1032.  
  1033.  
  1034. ΓòÉΓòÉΓòÉ 6.3. AFPEXT ΓòÉΓòÉΓòÉ
  1035.  
  1036. An afpext entry defines the default extension for the input apf file if it has 
  1037. no extension. The operand is a name, and should start with a dot. 
  1038.  
  1039. The last apfext entry before the first printer entry is used. This option is 
  1040. ignored if it comes after the first printer entry. 
  1041.  
  1042. The default is to use .afp. 
  1043.  
  1044.     afpext  = .lis
  1045.     afpext  = .afp
  1046.  
  1047.  
  1048. ΓòÉΓòÉΓòÉ 6.4. AFPFONT ΓòÉΓòÉΓòÉ
  1049.  
  1050. A afpfont entry allows the addition or modification of font entries in 
  1051. lp3820.ftb. This provides lp3820 with metrics and substitution information. 
  1052.  
  1053. There are three operands, the name of the font to define, the name of a font to 
  1054. use for metrics, and the soft font identifier for the substitution information. 
  1055.  
  1056. AFP font names are usually eight bytes long starting with C0. DCF mostly uses 
  1057. the 3800 form of the name, in which the second character indicates direction. 
  1058. Upright fonts thus start C1. You can use either form of the name.  You can find 
  1059. the names of fonts by looking in the file FONT3820 LISTING which should be on 
  1060. the same disk that the AFP fonts are located. 
  1061.  
  1062.     afpfont C0FOILH6 C0FOILS6 pres20b
  1063.     afpfont C0Z0RX10 C0S0GT10 lgot12
  1064.     afpfont C0S0GT12 bgot10
  1065.  
  1066.  
  1067. ΓòÉΓòÉΓòÉ 6.5. CODEPAGE ΓòÉΓòÉΓòÉ
  1068.  
  1069. A codepage entry defines the code page for subsequent font entries.  This 
  1070. should match the actual code page of the font, and indicates both the 
  1071. translation and character contents of the font. 
  1072.  
  1073. The single operand is a name. 
  1074.  
  1075. The following values are supported internally by lp3820.  These same values can 
  1076. be used in other locations where internally supported ASCII code pages are 
  1077. required. 
  1078.  
  1079.  850       Full international character set 
  1080.  850a      International with typographic characters 
  1081.  850p      International publishing characters 
  1082.  850s      International PostScript set 
  1083.  rom8      Font in HP order, no box corners or publishing chars 
  1084.  win       Font in Windows (ISO) order, not box corners or publishing chars 
  1085.  437       US English PC 
  1086.  437a      US English PC typographic subset 
  1087.  437b      US English PC small subset 
  1088.  437d      HP Danish variant of 437 
  1089.  819       ISO Latin 1 
  1090.  1004      Desktop publishing 
  1091.  symb      PostScript Symbol 
  1092.  syma      PostScript Symbol without multi-part characters 
  1093.  862       Hebrew variant of 437 
  1094.  hebr      Hebrew characters only 
  1095.  apl2      APL2 (code page 910) 
  1096.  xtyp      lp3820 extended typographics 
  1097.  scrn      lp3820 extended typographics (screen specials) 
  1098.  
  1099.  If the operand is not one of these, it is used as a file name to find a .ftt 
  1100.  (font translation table) file. This can be an internal file (within 
  1101.  lp3820.ftb), or an external file. This allows you to specify soft fonts which 
  1102.  are not in standard code pages. 
  1103.  
  1104.       codepage  850
  1105.       codepage  apl2
  1106.  
  1107.  
  1108. ΓòÉΓòÉΓòÉ 6.6. COLOR ΓòÉΓòÉΓòÉ
  1109.  
  1110. A color entry allows the color for font families, rules, and images to be 
  1111. specified.  Multiple entries are processed in order, thus generic color entries 
  1112. should be used before more specific entries. 
  1113.  
  1114. For DeskJet printers, it takes 4 times as much memory, and a lot more CPU time 
  1115. to print in color.  For PostScript and PCL5, there is no additional overhead 
  1116. for lp3820. 
  1117.  
  1118. There are two operands.  The first gives the font family or area, and the 
  1119. second gives the color.  The first operand can have the name of of font family 
  1120. followed by an attribute ('i', 'b', 'x') or by an asterisk ('*') to indicate 
  1121. all attributes for the family. 
  1122.  
  1123.  image     Set the image color 
  1124.  
  1125.  rule      Set the rule color 
  1126.  
  1127.  *         Set all colors 
  1128.  
  1129.  *n        All normal fonts 
  1130.  
  1131.  *b        All bold fonts 
  1132.  
  1133.  *i        All italic fonts 
  1134.  
  1135.  *x        All bold italic fonts 
  1136.  
  1137.  The color can be one of the 6 primary and secondary colors, black, and white. 
  1138.  Colors other than these full intensity colors are not supported. 
  1139.  
  1140.  black     Use color defined in document (normally black) 
  1141.  
  1142.  cyan      Cyan (pigment primary blue/green) 
  1143.  
  1144.  magenta   Magenta (pigment primary pink) 
  1145.  
  1146.  yellow    Yellow (pigment primary) 
  1147.  
  1148.  red       Red - combination of magenta and yellow 
  1149.  
  1150.  blue      Blue - combination of cyan and magenta 
  1151.  
  1152.  green     Green - combination of cyan and yellow 
  1153.  
  1154.  white     Erase pels to media color (normally white) 
  1155.  
  1156.       color  *      green   <- print everything in green
  1157.       color  logo*  blue    <- all logo fonts in blue
  1158.       color  helvb  red     <- helvitica bold fonts in red
  1159.       color  rule   black   <- draw lines in black
  1160.       color  image  cyan    <- print images in cyan
  1161.  
  1162.  
  1163. ΓòÉΓòÉΓòÉ 6.7. COPIES ΓòÉΓòÉΓòÉ
  1164.  
  1165. A copies entry allows the specification of the number of uncollated copies to 
  1166. make of each page.  The operand is a single numeric value in the 1 to 99 range. 
  1167. This value is overridden by the /co= command line option.  This value is 
  1168. normally left unset in the profile, and set only as a command line option. 
  1169.  
  1170.     copies = 3
  1171.  
  1172.  
  1173. ΓòÉΓòÉΓòÉ 6.8. DEFAULT ΓòÉΓòÉΓòÉ
  1174.  
  1175. A default entry defines the default printer entry to use if none is specified 
  1176. on the lp3820 command. The first printer found whose names has been specified 
  1177. as the default is used as the printer definition. 
  1178.  
  1179. A single operand gives the name of the printer description. 
  1180.  
  1181. As shipped, the default printer description is set to none  This is just a 
  1182. normal printer description within lp3820 which generates an error message. 
  1183.  
  1184.     default = ps
  1185.     default none
  1186.  
  1187.  
  1188. ΓòÉΓòÉΓòÉ 6.9. DEFCODE ΓòÉΓòÉΓòÉ
  1189.  
  1190. A defcode entry is used to specify the default codepage when resolving Coded 
  1191. Fonts.  Coded fonts are mostly used within Overlays.  The default codepage is 
  1192. global and the last defcode entry in the profile is used. 
  1193.  
  1194. The operand the name of a codepage, which can be the same as the second operand 
  1195. in the AFPCODE entry. 
  1196.  
  1197.     defcode  386
  1198.     defcode  t1debase
  1199.  
  1200.  
  1201. ΓòÉΓòÉΓòÉ 6.10. DUPLEX ΓòÉΓòÉΓòÉ
  1202.  
  1203. A duplex entry allows the specification information concerning duplex. If this 
  1204. entry precedes the first printer entry, it applies to all printer entries, 
  1205. otherwise only to the current printer entry. The operand is one or more 
  1206. keywords and can be: 
  1207.  
  1208.  on        Tell the printer to do duplex 
  1209.  off       Tell the printer not to do duplex 
  1210.  tumble    Tell the printer to do duplex bound on small side. 
  1211.  default   Tell the printer nothing about duplex (default) 
  1212.  num       Set the page set size (1 - 64) 
  1213.  
  1214.       duplex  on
  1215.       duplex  tumble
  1216.  
  1217.  
  1218. ΓòÉΓòÉΓòÉ 6.11. FAMILY ΓòÉΓòÉΓòÉ
  1219.  
  1220. A family entry allows the specification of a scalable font family.  This is 
  1221. used for PostScript, 4029, and PCL5 fonts. Each family entry has the following 
  1222. entries.  The first 5 are required. The rest are optional, and default as 
  1223. specified. 
  1224.  
  1225. All fonts names except the base can be specified as a delta from the base font 
  1226. name.  This can be an equal sign (=) to indicate a name equal to the base, an 
  1227. equal plus characters which appends a hyphen and these characters to the end of 
  1228. the base name, or a hyphen and some characters, which replaces the final 
  1229. hyphenated piece of the base name with the specified characters. 
  1230.  
  1231.  class     The four byte class name (see font below). For a 4029 and HPPCL, 
  1232.            monospace fonts should have a minus sign (-) as the fifth character. 
  1233.  
  1234.  base      The name of the base font of the family. 
  1235.  
  1236.  italic    The name of the italic (or oblique) font of the family. 
  1237.  
  1238.  bold      The name of the bold font of the family. 
  1239.  
  1240.  italicboldThe name of the italic and bold font of the family. 
  1241.  
  1242.  codepage  The codepage of the font. This must be one of the internally 
  1243.            supported ASCII code pages. This is used to specify the contents of 
  1244.            the font. In general, you should use 850 for the encoded value as 
  1245.            otherwise some characters may become unusable. 
  1246.  
  1247.            For PostScript, symb and 850 are the only encoding which work. For 
  1248.            the 4029, those code pages supported by both the 4029 and lp3820 can 
  1249.            be used. For PCL5, you can use 850, 437, 819, 1004, 1051, or symb. 
  1250.  
  1251.  hscale    Horizontal scale for non-bold fonts as a percentage. The default is 
  1252.            100. 
  1253.  
  1254.  hscaleb   Horizontal scale for bold fonts as a percentage The default is 100. 
  1255.  
  1256.  vscale    Vertical scale.  This is a multiplier of the given point size to 
  1257.            actually use.  The default is 100. 
  1258.  
  1259.  In PCL5 the font name represents a font selection field. This should contain 
  1260.  the style, bold, and typface values. To select CG Times Bold use: 
  1261.  
  1262.       0v3b4101T
  1263.  
  1264.  Note:  In PCL5 (types hp3 and hp4) both vertical and horizontal scaling is 
  1265.  done based on the hscale (or hscaleb).  The vertical scale factor is not used. 
  1266.  This is due to a deficiency in the HP-PCL5 font implementation which does not 
  1267.  provide for separate horizontal and vertical scale factors. 
  1268.  
  1269.       family lgot- Courier =Oblique =Bold =BoldOblique         850  80  80 115
  1270.       family helv  Helvetica =Italic =Bold =BoldItalic         850 100 100 100
  1271.       family lgot- 0s0b4102T  1s0b4102T  0s3b4102T  1s3b4099T  850  80  80
  1272.       family helv  0s0b16602T 1s0b16602T 0s3b16602T 1s3b16602T 850  95  95
  1273.       family ssse  Helvetica =Oblique =Bold =BoldOblique       850  95  90 100
  1274.       family logo- IBM-Logo   = = =                              0 100 100 100
  1275.  
  1276.  
  1277. ΓòÉΓòÉΓòÉ 6.12. FONT ΓòÉΓòÉΓòÉ
  1278.  
  1279. A font entry declares the existence of a soft font, and gives the file name 
  1280. which contains it. 
  1281.  
  1282. There must be a font entry for each soft font installed on your system.  If you 
  1283. use the fonts shipped with lp3820, or rename your fonts to the default names, 
  1284. you do not need to specify a file name. 
  1285.  
  1286. A soft font is identified by a name which is made up of three parts: 
  1287.  
  1288.    1. The font class given as a four byte name 
  1289.  
  1290.    2. The font size in points given as a two digit value 
  1291.  
  1292.    3. The font attribute, given as a single character 
  1293.  
  1294.  Example font identifiers are: time12, helv18b, xtyp08. 
  1295.  
  1296.  The font classes are derived from the HPPCL font classes, and are given a four 
  1297.  character name.  The case of the name is ignored. The following classes may be 
  1298.  used: 
  1299.  
  1300.  line      0 - Line Printer 
  1301.  pica      1 - Pica 
  1302.  elit      2 - Elite 
  1303.  cour      3 - Courier 
  1304.  helv      4 - Helvetica 
  1305.  time      5 - Times Roman 
  1306.  lgot      6 - Letter Gothic 
  1307.  scri      7 - Script 
  1308.  pret      8 - Prestige 
  1309.  pret      9 - Caslon 
  1310.  orat      10 - Orator 
  1311.  pres      11 - Presentor 
  1312.  essa      12 - Essay 
  1313.  seri      13 - Serif 
  1314.  futu      14 - Futura 
  1315.  pala      15 - Palatino 
  1316.  souv      16 - Souvenir 
  1317.  opti      17 - Optima 
  1318.  gara      18 - Garamond 
  1319.  gara      19 - Cooper 
  1320.  coro      20 - Coronet 
  1321.  broa      21 - Broadway 
  1322.  hebr      22 - Hebrew * 
  1323.  cent      23 - Century Schoolbook 
  1324.  unvr      24 - University 
  1325.  helo      25 - Helvetica Outline 
  1326.  futn      26 - Futura Narrow 
  1327.  kori      27 - Korinna 
  1328.  cloi      29 - Cloiser 
  1329.  gall      30 - Galliard 
  1330.  avan      31 - Avant Garde 
  1331.  xtyp      33 - Extended typographic * 
  1332.  logo      34 - IBM Logo * 
  1333.  olde      35 - Old English (Windsor) 
  1334.  heln      36 - Helvetica Narrow 
  1335.  helx      37 - Helvetica Extra Narrow 
  1336.  yasm      37 - Hebrew 
  1337.  bask      39 - Baskerville 
  1338.  garn      40 - Garamond Narrow 
  1339.  news      41 - News Gothic 
  1340.  goud      42 - Goudy 
  1341.  chan      43 - Chancery 
  1342.  clar      44 - Clarendon 
  1343.  ding      45 - Dingbats 
  1344.  apl2      46 - APL 2 
  1345.  book      47 - Bookman 
  1346.  sser      48 - Sonoran Serif * 
  1347.  ssse      49 - Sonoran Sans Serif * 
  1348.  hebm      50 - Hebrew monospace * 
  1349.  gill      51 - Gill Sans 
  1350.  univ      52 - Univers 
  1351.  rock      54 - Rockwell 
  1352.  hebh      55 - Hebrew sans serif * 
  1353.  bgot      56 - BookMaster Gothic * 
  1354.  symb      137 - Symbol 
  1355.  symm      138 - Symbol monospace 
  1356.  
  1357.  Names marked with an asterisk (*) are private to lp3820. lp3820 will 
  1358.  automatically compute the FGID from the font class. You can also use the names 
  1359.  fnt followed by a single digit (fnt0, fnt1, etc.).  These are designed to 
  1360.  allow font mapping without using an actual font name. 
  1361.  
  1362.  The font size is given as an two digit value.  When the value is less than 10, 
  1363.  the leading zero must be used. 
  1364.  
  1365.  The font attribute is a single character, and can be one of the following: 
  1366.  
  1367.            Base font attribute (can also be given as N). 
  1368.  I         Italic or Oblique 
  1369.  B         Bold 
  1370.  X         Bold and Italic (or oblique) 
  1371.  
  1372.       codepage 850
  1373.       font  helv10  sans10.dlf
  1374.       font  helv10  sans10.hpf
  1375.  
  1376.  
  1377. ΓòÉΓòÉΓòÉ 6.13. FONTEXT ΓòÉΓòÉΓòÉ
  1378.  
  1379. A fontext entry defines the default extension for soft fonts for which no file 
  1380. name is given. The operand is a name, and should start with a dot. 
  1381.  
  1382. The default is to use .dlf. 
  1383.  
  1384. Only the last fontext entry found in the profile is used. 
  1385.  
  1386.     fontext = .dlf
  1387.  
  1388.  
  1389. ΓòÉΓòÉΓòÉ 6.14. FORMDEF ΓòÉΓòÉΓòÉ
  1390.  
  1391. Specify the name of the formdef to use.  A formdef may override the setting of 
  1392. left, top, and paper. This can be overridden using the -fd command line option, 
  1393. or by a formdef within the document. 
  1394.  
  1395. The operand is a single file name.  No extension is added, but normal path 
  1396. search is done. 
  1397.  
  1398. The file is processed as a normal AFP file, and may contain more than just a 
  1399. formdef.  It is processed before the beginning of the input document. 
  1400.  
  1401.     formdef  f1form.fde
  1402.  
  1403.  
  1404. ΓòÉΓòÉΓòÉ 6.15. GLYPH ΓòÉΓòÉΓòÉ
  1405.  
  1406. A glyph entry allows the mapping of missing glyphs to glyphs of similar 
  1407. appearance.  For instance, the ring accent and the degree symbol look very 
  1408. similar, and the font may have one, but the other may be required.  This table 
  1409. maps glyphs for all printers. 
  1410.  
  1411. The operands are two numbers, a from glyph and a to glyph. These are based on 
  1412. the OS/2 universal glyph list. 
  1413.  
  1414.     glyph  16  26  right
  1415.     glyph  18 244  paragraph
  1416.  
  1417.  
  1418. ΓòÉΓòÉΓòÉ 6.16. INCLUDE ΓòÉΓòÉΓòÉ
  1419.  
  1420. An include entry allows you to include printer specific entries.  This include 
  1421. is conditional in that it is only done if the current printer entry is 
  1422. selected. 
  1423.  
  1424. This has a single operand, which is the file name to include. This can be an 
  1425. internal file name (given with no extension). 
  1426.  
  1427.     include  c:\lp\mystuff.pro    <- full path
  1428.     include  mystuff.pro          <- look up in LP3820 and PATH
  1429.     include  !std4029             <- internal file
  1430.  
  1431.  
  1432. ΓòÉΓòÉΓòÉ 6.17. INCLUDEALL ΓòÉΓòÉΓòÉ
  1433.  
  1434. An includeall entry allows an extension of the profile. This include is done 
  1435. regardless of whether the current printer entry is selected.  Up to four levels 
  1436. of includes are allowed. The include facility is used by the system to define 
  1437. standard definitions used by all printer entries. 
  1438.  
  1439.     includeall  c:\lp\mystuff.pro    <- full path
  1440.     includeall  mystuff.pro          <- lookup in LP3820 and PATH
  1441.     includeaal  mystuff              <- subfile within lp3820.ftb
  1442.  
  1443.  
  1444. ΓòÉΓòÉΓòÉ 6.18. LEFT ΓòÉΓòÉΓòÉ
  1445.  
  1446. A left entry moves the text horizontally on the page. This is designed to 
  1447. compensate for any automatic margin added by the printer. It can also be used 
  1448. to compensate for printers which do not print all the way to the left paper 
  1449. edge. 
  1450.  
  1451. There is a single operand which is a numeric value which represents a number of 
  1452. 1/300i units. 
  1453.  
  1454. The value is defaulted by printer type.  Most HP printers have a non-zero 
  1455. default. A positive value has the effect of moving the contents to the left. A 
  1456. negative value has the effect of moving the contents to the right. 
  1457.  
  1458.     left = 50
  1459.     left = -50
  1460.  
  1461.  
  1462. ΓòÉΓòÉΓòÉ 6.19. METRICS ΓòÉΓòÉΓòÉ
  1463.  
  1464. A metrics entry allows multiple .ftb files to be used. You should normally 
  1465. include lp3820 as the first entry in the list. You may have up to four metrics 
  1466. entries in the list. 
  1467.  
  1468. This entry must precede the first include or printer description. 
  1469.  
  1470. It is a fatal error if the first metrics entry is not found, all others give 
  1471. error messages.  If lp3820.ftb is not in the list, or is not found, lp3820 will 
  1472. probably not work correctly. 
  1473.  
  1474.     metrics  lp3820
  1475.  
  1476.  
  1477. ΓòÉΓòÉΓòÉ 6.20. MOREFONT ΓòÉΓòÉΓòÉ
  1478.  
  1479. A morefont entry allows the specification of the additional fonts families 
  1480. which are to be used to satisfy characters which are not found in the base 
  1481. font.  This is done on a per printer description basis.  The default is to use 
  1482. xtyp, and symb.  For base fonts not in a standard code page, the alternate font 
  1483. in codepage 850 is also used. 
  1484.  
  1485. In most cases, the default morefont selection is correct and should not be 
  1486. changed.  If you include another font family in the list, be sure to have at 
  1487. least one font entry for this family, which is used to derive the proper 
  1488. codepage. 
  1489.  
  1490.     morefont xtyp scrn symb alt
  1491.  
  1492.  
  1493. ΓòÉΓòÉΓòÉ 6.21. MULTIUP ΓòÉΓòÉΓòÉ
  1494.  
  1495. A multiup entry allows you to control the PostScript multi-up facility. 
  1496.  
  1497. The entry consist of a number (1, 2, 3, 4, or 8) giving the number of pages on 
  1498. the paper, followed by keywords and values.  The value is optional, and some 
  1499. keywords do not allow a value. 
  1500.  
  1501. The following keywords exist, along with the default and possible values. 
  1502.  
  1503.  rule      - Width of the rule.  Default = 5  (0 - 200) 
  1504.  shadow    - Size of the shadow. Default = 75 (0 - 32) 
  1505.  gray      - Color of the shadow. Default = 80 (0 = 100) 
  1506.  scale     - Scale page from possible size. Default = 90 (50 - 150) 
  1507.  orient    - Orientation.  Default = 0 (0, 90, 180, 270) 
  1508.  noshadow  - Use no shadow (same as shadow 0) 
  1509.  norule    - Use no rule (same as rule 0) 
  1510.  thick     - Use thick rule (same as rule 15) 
  1511.  
  1512.  Examples of the multiup control are: 
  1513.  
  1514.       multiup   1 noshadow norule scale 100
  1515.       multiup   2 noshadow rule scale 100
  1516.       multiup   4
  1517.       multiup   8 shadow 75 rule 5 gray 80 scale 90
  1518.  
  1519.  
  1520. ΓòÉΓòÉΓòÉ 6.22. OPTION ΓòÉΓòÉΓòÉ
  1521.  
  1522. An option entry specifies variations on the type. If this entry precedes the 
  1523. first printer entry, it applies to all printer entries, otherwise only to the 
  1524. current printer entry. 
  1525.  
  1526. There can be multiple options specified in one entry, and there can be multiple 
  1527. option entries in a printer description.  If they conflict, the last one 
  1528. specified is used. 
  1529.  
  1530. The following options are allowed: 
  1531.  
  1532.  binary      Download images in binary.  To use this option, you must set the 
  1533.              printer to binary mode. 
  1534.  
  1535.  7bit        Use only 7 bit ASCII codes.  Use this option if you are sending 
  1536.              the PostScript over a communications line with parity. 
  1537.  
  1538.  hex         Use hex mode for images.  This is the default and cancels binary 
  1539.              or 7bit mode.  You may generate hex mode PostScript even if you 
  1540.              are running in PostScript binary mode. 
  1541.  
  1542.  level2      Assume PostScript level 2.  Currently this only causes image 
  1543.              compression, but this may be used for more in the future. 
  1544.  
  1545.  color       Use color on printers which support it.  The color can either be 
  1546.              from the file itself, or from a color entry. This is supported for 
  1547.              PostScript, DeskJet, and PCL5 printers. 
  1548.  
  1549.  nocolor     Do not use color even for printers which support color. 
  1550.  
  1551.  draft       Print in lower quality mode.  Laser printers do not normally have 
  1552.              any differences in quality, but this is supported by inkjet 
  1553.              printers. 
  1554.  
  1555.  nodraft     Use the printer default quality mode. 
  1556.  
  1557.  quality     Print in high quality mode. 
  1558.  
  1559.  eoj         Put out an EOJ (ctrl-d) at the end of the file.  This is the 
  1560.              default. 
  1561.  
  1562.  noeoj       Do not put out an EOJ at the end of the job.  This should be used 
  1563.              when the file is not being sent to a printer. 
  1564.  
  1565.  boj         Put out an EOJ (ctrl-d) at the beginning of the file. This can be 
  1566.              used to verify that the previous job is ended, but can cause 
  1567.              confusion to some PostScript routers. 
  1568.  
  1569.  noboj       Do not put out an EOJ at the beginning of the file. This is the 
  1570.              default. 
  1571.  
  1572.  imgcomp     Compress images.  This is honored by all modes except PCL4.  This 
  1573.              is not the default, but is set in the profile for printer 
  1574.              descriptions for which it is supported.  For raster HPPCL, this 
  1575.              will create DeskJet compatible output. 
  1576.  
  1577.  noimgcomp   Do not compress images.  This is the default for all printer 
  1578.              types. 
  1579.  
  1580.  top         Top align when page is not the same as paper size 
  1581.  
  1582.  center      Center align when page is not the same as paper size. This is the 
  1583.              default. 
  1584.  
  1585.  bottom      Bottom align when page is not the same as paper size 
  1586.  
  1587.  noalign     Ignore page size and align based on paper size. This is equal to 
  1588.              the previous method.  This may be necessary in some cases if the 
  1589.              page information is incorrect. 
  1590.  
  1591.  noscale     Do not scale images.  This makes the entire page smaller (5 to 4) 
  1592.              by acting as if all data was at 300dpi.  This makes full page 
  1593.              images look better.  You might also want to change the left 
  1594.              margin.  The top margin is adjusted automatically. 
  1595.  
  1596.  smallimg    Small images and normal size text.  This is the same as the -ni 
  1597.              option. 
  1598.  
  1599.  nfs         Do minimal support for the LaserJet+ (PCL3).  This must be used 
  1600.              together with the type 4216hp. 
  1601.  
  1602.  revland     Reverse rotation of landscape orientation.  This may make be 
  1603.              useful to maintain a particular orientation of the paper. 
  1604.              However, mixed orientation pages may not be correct. 
  1605.  
  1606.  normland    Normal rotation of landscape orientation.  This is the default. 
  1607.  
  1608.  sic         Place a Set Initial Conditions command at the start of the 
  1609.              datastream.  This will force the mode, but make it work only on an 
  1610.              IBM LaserPrinter (4019 or 4029). 
  1611.  
  1612.  nosic       Do not write a SIC command.  This is the default. 
  1613.  
  1614.       option  imgcomp
  1615.       option  7bit noeoj noboj
  1616.       option  level2
  1617.  
  1618.  
  1619. ΓòÉΓòÉΓòÉ 6.23. OVLYEXT ΓòÉΓòÉΓòÉ
  1620.  
  1621. A ovlyext entry specifies the extension to be used for external overlays. The 
  1622. operand is a name, and should start with a dot.  The default is to use .ovl 
  1623. which is the default extension created by the download. 
  1624.  
  1625. Only the last ovlyext entry found in the profile is used. 
  1626.  
  1627.     ovlyext  = .ovl
  1628.  
  1629.  
  1630. ΓòÉΓòÉΓòÉ 6.24. PAPER ΓòÉΓòÉΓòÉ
  1631.  
  1632. A paper entry allows the specification of the paper size in a printer. lp3820 
  1633. must know the paper size to properly align documents. It is especially 
  1634. important for rotated documents. If this entry precedes the first printer 
  1635. entry, it applies to all printer entries, otherwise only to the current printer 
  1636. entry. 
  1637.  
  1638. The operands are up to four paper sizes.  The first is the default and paper 
  1639. source 1.  The second indicates the size of the second paper source, the third 
  1640. indicates the size of the manual paper source, and the fourth indicates the 
  1641. third paper source (envelope feeder). Missing operands default to the first 
  1642. size specified.  If no paper size is specified, the default is letter 
  1643.  
  1644. The following are valid paper sizes: 
  1645.  
  1646.  letter    Use US size paper (this is the default) 
  1647.  
  1648.  a4        Use European A4 size paper 
  1649.  
  1650.  b5        Use Metric B5 size paper 
  1651.  
  1652.  exec      Use executive size paper 
  1653.  
  1654.  legal     Use US legal size paper 
  1655.  
  1656.       paper  a4
  1657.       paper  letter legal
  1658.  
  1659.  
  1660. ΓòÉΓòÉΓòÉ 6.25. PATH ΓòÉΓòÉΓòÉ
  1661.  
  1662. A path entry allows an additional path for file searches to be specified.  This 
  1663. is mostly useful to specify where the fonts are placed in a LAN or CD-ROM 
  1664. environment. 
  1665.  
  1666.     path  f:\devtools\lp3820;f:\devtools\lp3820\font;
  1667.     path  \\txttools\lp3820
  1668.  
  1669.  
  1670. ΓòÉΓòÉΓòÉ 6.26. PORT ΓòÉΓòÉΓòÉ
  1671.  
  1672. A port entry gives the name of the file to which the output is to be written. 
  1673. This is normally the name of a printer device file, but may be any disk file. 
  1674.  
  1675. This is a single operand, which is a file name. 
  1676.  
  1677. If the name begins with a period, it is treated as an extension, and this 
  1678. extension replaces the extension of the input file to create the output file 
  1679. name.  This is normally used when the output is to a disk file. 
  1680.  
  1681. In OS/2, if the name begins with a colon it is treated as the name of a Queue 
  1682. (logical printer object).  The name is the physical name of the printer which 
  1683. shows up in the View tab of the printer object settings. When using a queue, 
  1684. you can also specify the SPOOLFORM and SPOOLUSER options.  The specified queue 
  1685. must have IBMNULL defined as one of its available print drivers. 
  1686.  
  1687. Note:  This name cannot be changed once the printer object is created, and can 
  1688. only be specified when the printer object is created from a template. 
  1689.  
  1690. A single hyphen (-) indicates that the output should be sent to standard 
  1691. output. 
  1692.  
  1693. This entry is overridden by the -f option on the command line. 
  1694.  
  1695.     port  lpt1
  1696.     port  .ps
  1697.     port  :postscri
  1698.     port  -
  1699.  
  1700.  
  1701. ΓòÉΓòÉΓòÉ 6.27. PRINTER ΓòÉΓòÉΓòÉ
  1702.  
  1703. A printer entry defines a printer description. The printer description starts 
  1704. with a printer entry, and continues until the next printer entry or end of 
  1705. file. 
  1706.  
  1707. There is a single operand, which is the name of the printer description. This 
  1708. can be 1 to 16 characters, and case is ignored. You can have as many printer 
  1709. descriptions as desired. 
  1710.  
  1711. A particular printer description may be used by giving this name as the second 
  1712. name on the lp3820 command. 
  1713.  
  1714.     printer  ps
  1715.     printer  my-deskjet
  1716.  
  1717.  
  1718. ΓòÉΓòÉΓòÉ 6.28. PSEGEXT ΓòÉΓòÉΓòÉ
  1719.  
  1720. A psegext entry specifies the extension to be used for external PSEGs found in 
  1721. the datastream. The operand is a name, and should start with a dot. 
  1722.  
  1723. The default is to use .pse which is the default extension created by the 
  1724. download. 
  1725.  
  1726. Only the last psegext entry found in the profile is used. 
  1727.  
  1728.     psegext  = .pse
  1729.     psegext  .psg
  1730.  
  1731.  
  1732. ΓòÉΓòÉΓòÉ 6.29. PSEGPOS ΓòÉΓòÉΓòÉ
  1733.  
  1734. A psegpos entry allows the specification of the placement of standalone PSEGs. 
  1735. Since there is no page or include controls for these, this information is 
  1736. necessary to properly position the PSEG. 
  1737.  
  1738. The operands consist of up to two positions.  The first is the left, and the 
  1739. second is the top.  If only one is given, both positions are set equal.  The 
  1740. positions are in 1/240 inch units.  The default is 120 (12.7 mm) for both 
  1741. positions. 
  1742.  
  1743.     psegpos  300  300
  1744.  
  1745.  
  1746. ΓòÉΓòÉΓòÉ 6.30. PSFONT ΓòÉΓòÉΓòÉ
  1747.  
  1748. A psfont entry allows the specification of a PostScript, 4029 type 1, or PCL5 
  1749. scalable font to be downloaded to the printer. 
  1750.  
  1751. All PSFONT entries in the printer description are downloaded in the prolog for 
  1752. PostScript.  For 4029 PPDS and PCL5, they are downloaded only if they are used 
  1753. in the job. 
  1754.  
  1755. There are two operands.  The first consists of a soft font identifier without 
  1756. the size field, and the second is a file name.  An attribute of asterisk (*) 
  1757. can be used to indicate that this applies to all font attributes.  The font 
  1758. class is used in 4029 PPDS. In PostScript, this operand is required, but it is 
  1759. ignored. 
  1760.  
  1761. The second operand consists of a file name of the font to be downloaded. 
  1762.  
  1763. psfont entries apply to a single printer. 
  1764.  
  1765. Note:  In PostScript, the fonts are loaded as part of the prolog. This can 
  1766. consist of any valid PostScript statements, and do not need to define a font. 
  1767. This mechanism is used to implement the PostScript multi-up facility. 
  1768.  
  1769.     psfont   logo* !lplogo
  1770.     psfont   bgot* lpbgot.pfb
  1771.  
  1772.  
  1773. ΓòÉΓòÉΓòÉ 6.31. PSHEADER ΓòÉΓòÉΓòÉ
  1774.  
  1775. A psheader entry allows the PostScript header file to be modified on a per 
  1776. printer basis.  You should not update this unless you know what you are doing. 
  1777.  
  1778. This is here to allow you to specify either the internal or an external version 
  1779. of the header. If this entry precedes the first printer entry, it applies to 
  1780. all printer entries, otherwise only to the current printer entry. 
  1781.  
  1782.     psheader  !lp3820
  1783.     psheader  altps.psh
  1784.  
  1785.  
  1786. ΓòÉΓòÉΓòÉ 6.32. RESERVE ΓòÉΓòÉΓòÉ
  1787.  
  1788. A reserve entry allows font IDs to be reserved. This should be used when the 
  1789. printer has permanent soft fonts already loaded in the printer. By default, 
  1790. lp3820 reserves locations 1 thru 7. 
  1791.  
  1792. The operands are a list of values in the 1 to 99 range, indicating the font IDs 
  1793. which lp3820 should not use.  lp3820 will use values above 100 for scalable 
  1794. fonts. 
  1795.  
  1796.     reserve 10 15
  1797.  
  1798.  
  1799. ΓòÉΓòÉΓòÉ 6.33. RESIDENT ΓòÉΓòÉΓòÉ
  1800.  
  1801. A resident entry defines a resident font of the printer. This can be a builtin 
  1802. font, font card font, or a permanent soft font which is always loaded before 
  1803. lp3820 is run. 
  1804.  
  1805. There is a single operand which is a soft font identifier. The resident fonts 
  1806. are normally of minimal use to lp3820, and very little is gained by specifying 
  1807. them. 
  1808.  
  1809.     resident  cour10
  1810.  
  1811.  
  1812. ΓòÉΓòÉΓòÉ 6.34. SCALE ΓòÉΓòÉΓòÉ
  1813.  
  1814. A scale entry allows a vertical and horizontal scale factor to be applied to 
  1815. line positions. This can be used to print a document which is a little too 
  1816. large for the paper. This can be because the 3820 page size is a little larger, 
  1817. or just because it was formatted for A4, and you are printing on US paper. 
  1818.  
  1819. There are one or two operands, and each is an integer in the range 50 to 200, 
  1820. and is a percent scale of the vertical and horizontal axis. The default if not 
  1821. specified is 100. 
  1822.  
  1823. The best use of this feature is to allow the printing of documents formatted 
  1824. for A4 on US 8.5x11 (letter) paper.  Since the A4 page is longer, the contents 
  1825. at the end of the page are often lost.  By using a scale factor of about 94, it 
  1826. is possible to get the entire A4 page onto a letter page. 
  1827.  
  1828. Note:  You should not use scale with documents containing images unless you are 
  1829. using PostScript, since the image placement will not be correct. 
  1830.  
  1831.    scale 98
  1832.    scale 100 95
  1833.  
  1834.  
  1835. ΓòÉΓòÉΓòÉ 6.35. SETUP ΓòÉΓòÉΓòÉ
  1836.  
  1837. The setup options allow the specification of printer specific controls to be 
  1838. added to the datastream.  This should be done with care as it could cause the 
  1839. file not to print.  Three setup string locations are supported: 
  1840.  
  1841.    1. At the very start of the file (before the reset) 
  1842.    2. During document setup 
  1843.    3. At the beginning of each page. 
  1844.    4. At the very end of the file (after the reset) 
  1845.  
  1846.  There are two operands to the setup option.  The first specifies which string. 
  1847.  The second gives the string to send to the printer. This can be flat text, or 
  1848.  escape sequences.  An escape sequence consists of a backslash followed by 
  1849.  either two hex digits, or the a special character from the list below: 
  1850.  
  1851.  \         Insert a backslash (0x5c) 
  1852.  
  1853.  (         Insert an escape (0x1b) 
  1854.  
  1855.  n         Insert a line feed (0x0a) 
  1856.  
  1857.  r         Insert a carriage return (0x0d) 
  1858.  
  1859.       setup 1 \(%-12345X      <- force PCL5 to PCL mode
  1860.       setup 2 \(&l26a0l0E     <- force printer to A4
  1861.  
  1862.  
  1863. ΓòÉΓòÉΓòÉ 6.36. SOURCE ΓòÉΓòÉΓòÉ
  1864.  
  1865. A source entry allows the specification of alternate paper source.  If no paper 
  1866. source is specified, then the current paper source is used. 
  1867.  
  1868. The operands consist of up to two paper sources. The first indicates the source 
  1869. for the first page. The second indicates the source for all subsequent pages. 
  1870.  
  1871. Only the first character of the paper source is used. This can be: 
  1872.  
  1873.  1         Use the primary paper tray 
  1874.  2         Use the secondary paper tray 
  1875.  M         Use manual feed 
  1876.  3         Use the third paper source (envelope feed on 4029) 
  1877.  
  1878.       source 2
  1879.       source 1 2
  1880.  
  1881.  
  1882. ΓòÉΓòÉΓòÉ 6.37. SPOOLFORM ΓòÉΓòÉΓòÉ
  1883.  
  1884. A spoolform entry defines the form name to send to the print queue.  This works 
  1885. only in OS/2 when a queue name is specified as the port. 
  1886.  
  1887. There is a single operand which is the name of a form. This must be known to 
  1888. the IBMNULL print driver. This works only in OS/2 when a queue name is 
  1889. specified as the port. 
  1890.  
  1891.     spoolform  A4
  1892.  
  1893.  
  1894. ΓòÉΓòÉΓòÉ 6.38. SPOOLUSER ΓòÉΓòÉΓòÉ
  1895.  
  1896. A spooluser entry defines the user name to send to the print queue.  This shows 
  1897. up in the spool information, and is often printed in separator pages. 
  1898.  
  1899. There is a single operand which is the name. 
  1900.  
  1901.     spooluser  myname
  1902.  
  1903.  
  1904. ΓòÉΓòÉΓòÉ 6.39. SYNC ΓòÉΓòÉΓòÉ
  1905.  
  1906. A sync entry allows the specification of when to synchronize character 
  1907. position. The soft fonts supplied do not match perfectly the fonts used on the 
  1908. host such as Sonoran Serif. The resolution of the AFP devices (240) is also 
  1909. different from the resolution of personal laser printer devices (300).  It is 
  1910. therefore necessary to synchronize positions.  This can be done in three ways: 
  1911.  
  1912.    1. Synchronize by averaging over a word.  This gives the best appearance, 
  1913.       and produces a smaller datastream than character sync, but it works only 
  1914.       in PostScript. 
  1915.  
  1916.    2. Synchronize on each character.  This gives the best fidelity for 
  1917.       proofing, but does not look as good as averaging. It can also generate a 
  1918.       large data stream.  This is the default for datastreams other than 
  1919.       PostScript. 
  1920.  
  1921.    3. Do no synchronization.  Only absolute moves in the source data stream 
  1922.       will cause synchronization.  This will give correct placement of 
  1923.       characters for the target font,  but alignment and justification will be 
  1924.       incorrect. This is primarily used to create a small datastream. 
  1925.  
  1926.       The operand is a name.  Only the first character is used. This can be a 
  1927.       for average, c for character, and n for no synchronize.  This entry can 
  1928.       be overridden by the /a, /c and /n command line options. 
  1929.  
  1930.       sync  n
  1931.  
  1932.  
  1933. ΓòÉΓòÉΓòÉ 6.40. TOP ΓòÉΓòÉΓòÉ
  1934.  
  1935. A top entry moves the text vertically on the page.  This is designed to 
  1936. compensate for any automatic margin added by the printer. It can also be used 
  1937. to compensate for the fact that many printers do not allow marking in the top 
  1938. .25 inch of the page. This can also be used to match the compensation of the 
  1939. 3800-3 printer. 
  1940.  
  1941. There is a single operand which is a numeric value which represents a number of 
  1942. 1/300i units. 
  1943.  
  1944. The value is defaulted by printer type, but is zero for most printers. A 
  1945. positive value has the effect of moving the contents up on the page. A negative 
  1946. value has the effect of moving the contents down on the page. Remember that 
  1947. moving the contents so that the top line shows, may cause the bottom to be not 
  1948. shown.  This is because the 3820 has a longer page than can be printed on most 
  1949. personal laser printers. 
  1950.  
  1951.     top = 50
  1952.     top = -50
  1953.  
  1954.  
  1955. ΓòÉΓòÉΓòÉ 6.41. TYPE ΓòÉΓòÉΓòÉ
  1956.  
  1957. A type entry defines the type of printer, which is used to create different 
  1958. data streams.  If an incorrect type is used, the result will probably be 
  1959. garbage on the screen. 
  1960.  
  1961. There is a single operand, which gives the type. The following types may be 
  1962. used: 
  1963.  
  1964.  4019      IBM LaserPrinter 4019 in PPDS mode. 
  1965.  4029      IBM LaserPrinter 4029 in PPDS mode. 
  1966.  4019x     PPDS Raster mode 
  1967.  hp        HP LaserJet II or compatible (including 4019 in HP mode) 
  1968.  hp3       HP LaserJet III (PCL5) 
  1969.  hp4       HP LaserJet 4 (PCL5) or compatible (Lexmark 4039) 
  1970.  hpx       PCL Raster mode 
  1971.  4216hp    IBM Personal Page Printer (4216-30 or 31) in HP emulation 
  1972.  ps        Any printer in PostScript mode 
  1973.  text      Use no printer, but just extract the text 
  1974.  
  1975.       type  hp
  1976.       type  ps
  1977.  
  1978.  
  1979. ΓòÉΓòÉΓòÉ 6.42. Advanced Profile Options ΓòÉΓòÉΓòÉ
  1980.  
  1981. These additional profile entries are used less often, but may be important for 
  1982. advanced usage. 
  1983.  
  1984.  
  1985. ΓòÉΓòÉΓòÉ 7. Help! - What's Wrong? ΓòÉΓòÉΓòÉ
  1986.  
  1987. On the host, there is a system programmer to set up the printers, and get 
  1988. everything installed right.  Even so, it is considered somewhat of a black art. 
  1989. On your PC, you get to do all this yourself. 
  1990.  
  1991. This section describes a set of common problems, and what to do about them. 
  1992. Try looking in here first, and if you still cannot get something to work, look 
  1993. in LP3820 FORUM on IBMPC.  If you cannot find your problem append an entry in 
  1994. the forum, and you will probably get an answer. 
  1995.  
  1996.  
  1997. ΓòÉΓòÉΓòÉ 7.1. Not an AFP file ΓòÉΓòÉΓòÉ
  1998.  
  1999. lp3820 does not do a lot of checking of the datastream, but it does minimal 
  2000. checking to protect itself.  In AFP each record starts with an optional 
  2001. introducer (0x5a) and a length field. The length must be at least 8.  lp3820 
  2002. checks these items and gives the "Not a valid AFP file" error message if they 
  2003. are not correct.  The message also tells which record this was found on. 
  2004.  
  2005. The most common problem here is that the AFP file was not downloaded in binary. 
  2006. Some downloaders default to doing EBCDIC/ASCII translation, and this makes the 
  2007. file unreadable. Also be sure you got the correct file.  Some people have 
  2008. downloaded the SCRIPT file which an .afp extension, and then wondered why it 
  2009. did not print. These type of error will be found on the first record. 
  2010.  
  2011. Another possible problem is that the file was processed using XEDIT on the 
  2012. host, which truncated trailing blanks from the line.  This causes incorrect 
  2013. structured field lengths.  This commonly shows up at about record 3 or 4, but 
  2014. could be later in the document. 
  2015.  
  2016.  
  2017. ΓòÉΓòÉΓòÉ 7.2. Direct to LAN printing ΓòÉΓòÉΓòÉ
  2018.  
  2019. In some cases, printing directly to LAN or communications attached printers 
  2020. does not work.  lp3820 treats the output device as a simple file, and writes to 
  2021. it as fast as possible without any retry logic. This is normally not a problem 
  2022. for local spooled printers, but may be a problem for others printers. 
  2023.  
  2024. You can try setting the retry parameter of the port you are using, or use 
  2025. lp3820 to print to a file, and use the copy command (use the /b (binary) 
  2026. option) to copy the file to the printer. 
  2027.  
  2028.  
  2029. ΓòÉΓòÉΓòÉ 7.3. Missing Characters, Boxes messed up ΓòÉΓòÉΓòÉ
  2030.  
  2031. The datastream created by lp3820 for PPDS and HPPCL is a binary datastream, and 
  2032. cannot be processed thru a text mode CR/LF processing. The default in most 
  2033. cases is to process device files thru such a text filter.  In some cases this 
  2034. is just a bug in the device drivers. This problem does not exist for PostScript 
  2035. files, unless you have specified the PostScript BINARY option. 
  2036.  
  2037. In both DOS and OS/2, if you create a file, you need to use the binary mode 
  2038. copy to send it to the printer for PPDS and HPPCL datastreams. 
  2039.  
  2040. copy  out.ppd /b lpt1
  2041.  
  2042.  
  2043. ΓòÉΓòÉΓòÉ 7.4. Overlapping lines at top or side ΓòÉΓòÉΓòÉ
  2044.  
  2045. The print area of the IBM LaserPrinter and other personal laser printers is not 
  2046. as large as the 3820.  The IBM LaserPrinter has a .25i unprintable area on all 
  2047. sides of the paper. lp3820 has profile options which allow you to move the 
  2048. image across the paper to align the page as necessary. The left option moves 
  2049. the contents to the left (a negative value moves the contents to the right) on 
  2050. the page. The top option moves the contents to the top on the page. 
  2051.  
  2052. The IBM LaserPrinters have a "feature" in which when any text or image would be 
  2053. placed outside the printable area it is moved into the printable area.  Thus 
  2054. moving the contents of the page to the top or left would cause overlapping text 
  2055. since one line is moved, and the next line is not (since it is already in the 
  2056. printable area). I consider this feature to be a bug in the printer (this was 
  2057. partially fixed in the 4029). 
  2058.  
  2059. One fix for this is to use a printer entry with SCALE specified. 
  2060.  
  2061.  
  2062. ΓòÉΓòÉΓòÉ 7.5. Scrambled or misaligned image ΓòÉΓòÉΓòÉ
  2063.  
  2064. AFP images are often made up of a number of small squares of image. Scrambled 
  2065. or misaligned images are normally caused by the same "feature" as the 
  2066. overlapping lines above.  The squares at the top and/or left are moved, but the 
  2067. other squares are not, causing the misalignment. 
  2068.  
  2069.  
  2070. ΓòÉΓòÉΓòÉ 7.6. lp3820 Errors ΓòÉΓòÉΓòÉ
  2071.  
  2072. lp3820 gives a termination message, and also returns a return code which can be 
  2073. checked by the caller.  The following return codes are possible: 
  2074.  
  2075.  0         Document completed, no warnings 
  2076.  1         Exit from help, no document 
  2077.  2         Unable to open input document 
  2078.  3         Unable to open profile 
  2079.  4         Unable to open PostScript header file 
  2080.  5         Unable to open output file 
  2081.  6         Unable to open font metrics file 
  2082.  7         Version mismatch between lp3820 and metrics 
  2083.  8         Unable to find default font (metrics file error) 
  2084.  9         Printer description not found 
  2085.  10        Invalid structured field (not an AFP document) 
  2086.  11        Zero length structured field (not an AFP document) 
  2087.  12        Invalid text control 
  2088.  13        Error writing output file 
  2089.  16        Unsupported document type 
  2090.  18        Too many download fonts 
  2091.  19        Out of memory 
  2092.  20        lp3820 completed with warnings 
  2093.  21        lp3820 completed with errors 
  2094.  27        Error entry in profile 
  2095.  28        Extract file not found or not valid 
  2096.  29        Extract output file error 
  2097.  30        Extract output font error 
  2098.  225       Version return from -?? option 
  2099.  
  2100.  Most errors in the command line options are reported and ignored. Most errors 
  2101.  in the profile are ignored, and some are reported only when the debug options 
  2102.  (-d) is used.  The quiet flag (-q) will suppress just about all messages other 
  2103.  than terminating error messages. 
  2104.  
  2105.  Invalid input data (Not an AFP document) causes termination in the base 
  2106.  document, but is ignored when found in an included document.