home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR16 / WLPRSP30.ZIP / WLPRSPL.ASC < prev    next >
Text File  |  1993-09-24  |  24KB  |  605 lines

  1.                        WLPRSPL V3.0
  2.                              
  3.                              
  4.                              
  5.        An LPR based printer spooler for Windows 3.1
  6.                              
  7.                              
  8.                     September 24, 1993
  9.                              
  10.                              
  11.                              
  12.                              
  13.                              
  14.                              
  15.                              
  16.                              
  17.                         Thomas Heil
  18.                              
  19.                      Hindenburgstr. 50
  20.                    41352 Korschenbroich
  21.                           Germany
  22.                              
  23.               E-Mail: th.heil@kfa-juelich.de
  24. This  document  was  created  with  Microsoft  Word  for  Windows
  25. 2.0
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32. DISCLAIMER:
  33.  
  34. THE   SOFTWARE  IS  PROVIDED  AS-IS.  THE  AUTHOR  DISCLAIMS  ALL
  35. WARRANTIES,  EITHER  EXPRESS  OR  IMPLIED,  INCLUDING   BUT   NOT
  36. LIMITED  TO  IMPLIED  WARRANTIES OF  MERCHANTABILITY  OR  FITNESS
  37. FOR   A   PARTICULAR  PURPOSE.  NO  LIABILITY  IS   ASSUMED   FOR
  38. DAMAGES,  DIRECT  OR  CONSEQUENTIAL, WHICH MAY  RESULT  FROM  THE
  39. USE OF THIS SOFTWARE.
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. All  trademarks  appearing  in this  document  are  the  property
  53. of their respective owners.
  54.  
  55. Table of Contents
  56.  
  57. Table of Contents                                         3
  58. Introduction                                              5
  59. Requirements:                                             5
  60. Contents                                                  5
  61. How does the spooler work?                                7
  62. Installation                                              8
  63. First Start                                               8
  64. Defining Local Queues                                     8
  65. Adjusting WLPRSPL Parameters                              9
  66. WLPRSPL Running ...                                      10
  67. WLPRSPL Menu Options                                     11
  68. Usage Notes                                              12
  69. Licensing and Registration                               14
  70.     Registration Fee                                       14
  71. Change Log                                               14
  72. One final word ...                                       15
  73. Registration Form                                        17
  74.  
  75. Introduction
  76.  
  77. WLPRSPL is a program which allows transparent printing from
  78. Microsoft  Windows 3.1 applications to printers  which  are
  79. reachable  over  a  TCP/IP network using the  LPD  Protocol
  80. (RFC1179).  The  user installs the correct printer  drivers
  81. that  match the printers he wants to use, and connects them
  82. to  a  local spool file in the same way he would connect  a
  83. driver to an LPTx port. When an application then prints  to
  84. such a printer the Windows Print Manager writes the printer
  85. data  to  the corresponding spool file and sends WLPRSPL  a
  86. special  notification  (a  WM_SPOOLERSTATUS  message).  The
  87. spool file is then renamed by WLPRSPL, entered into its own
  88. queueing system, and then later sent to the remote printer.
  89. If  the print job could be sent successfully the spool file
  90. is  deleted,  otherwise sending is retried. After  a  user-
  91. definable  number  of  unsuccessful  retries  the  user  is
  92. notified and the local queue is disabled. The user may then
  93. enable  this  queue later when all problems are eliminated,
  94. and all files queued up to this time will be sent.
  95.  
  96. Requirements:
  97.  
  98.    Microsoft  Windows  3.1 and TCP/IP  networking  software
  99.    for   the   PC  that  offers  a  WinSock  1.1  compliant
  100.    WINSOCK.DLL.
  101.    WLPR.DLL Version 1.0 or later.
  102.    WSOCKAID.DLL  Version 1.0 or later.  Users  that  run  a
  103.    TCP/IP  stack other than FTP Software's should note  the
  104.    comment in the "Installation" section below.
  105.  
  106. Contents
  107.  
  108. This  package  contains the spooler (WLPRSPL.EXE)  and  the
  109. supporting  libraries  WLPR.DLL  Version  1.0  pl   0   and
  110. WSOCKAID.DLL Version 1.0 pl 0 as well as this documentation
  111. in  form  of a Word for Windows 2.0 .DOC file and  a  plain
  112. ASCII version.
  113.  
  114. How does the spooler work?
  115.  
  116. Every  printer used within Windows is connected  to  a  so-
  117. called "port." Examples are LPT1, LPT2, COM1, COM2 etc. But
  118. also normal files can define such ports. When you enter the
  119. line
  120.    
  121.    C:\SPOOL\DRUCKER.DAT=
  122.    
  123. into the [ports] section of WIN.INI you may later connect a
  124. printer driver to this "port." Every print job sent to this
  125. port  is written to the specified file by the Windows Print
  126. Manager.  This  is what WLPRSPL relies on. WLPRSPL  uses  a
  127. dedicated directory on the PCs hard disk for spooling (i.e.
  128. C:\SPOOL).  This  directory has to be specified  the  first
  129. time  you  start the program. For each network printer  you
  130. want to print to you have to chose a unique file name (i.e.
  131. HP.PCL  for  a  HP LaserJet in PCL mode).  This  file  name
  132. together with the chosen spool directory makes the port (in
  133. this  case C:\SPOOL\HP.PCL) to which an appropriate Windows
  134. Printer Driver can be connected. The filename without  path
  135. represents the local queue.
  136. The  definitions of all local queues are kept  in  a  queue
  137. definition file (which I will abbreviate as QDF from  now).
  138. This  is an ASCII file which might be edited using a normal
  139. editor. But I suggest that this file be maintained only  by
  140. means  of  the configuration dialogs of WLPRSPL.  The  file
  141. contains lines of the form
  142.    
  143.    remote-queue remote-host spoolfile options
  144.    
  145. An example for such a line might be
  146.    
  147.    ich01a4 ich210.ich.kfa-juelich.de HP.PCL v
  148.    
  149. Each  line  in  this file defines one remote  printer.  The
  150. individual fields of such a definition are separated by one
  151. or more spaces and have the following meaning:
  152.  
  153. remote-queue Name of the printer queue on the remote  print
  154. server
  155. remote-host  Internet  hostname or address  of  the  remote
  156. print server
  157. spoolfile Unique spool file name (without path)
  158. options Printing options
  159.  
  160. If  you have selected C:\SPOOL as the spool directory,  the
  161. port  C:\SPOOL\HP.PCL would be created by the example  line
  162. above  when  the program starts and the port does  not  yet
  163. exist.  Then  you  could connect the  HP  LaserJet  printer
  164. driver to this port using the control panel. When you later
  165. print to it from any windows application, the Print Manager
  166. writes  the  printer  data  to  the  file  C:\SPOOL\HP.PCL.
  167. WLPRSPL then puts the file into its own queueing system and
  168. sends the data to the remote printer queue ich01a4 on  host
  169. ich210.ich.kfa-juelich.de.
  170.  
  171. Installation
  172.  
  173. Choose  a  directory where you want to install WLPRSPL  and
  174. create  it. Move the archive WLPSPnn.ZIP to this  directory
  175. and  unzip  it  with  PKUNZIP  WLPSPnn  or  any  compatible
  176. program.  Move all *.DLL files to the Windows directory  or
  177. to  another directory that is in your PATH, or include  the
  178. directory where you installed WLPRSPL into your PATH.  Then
  179. either  create  a  new Program Manager  group  or  open  an
  180. existing,  and install WLPRSPL.EXE there (please  refer  to
  181. your  Windows documentation on how to do this). After  that
  182. you  can  start  the program for the first time.  For  your
  183. convenience   you should also install the spooler  in  your
  184. AUTOSTART group so that it gets launched automatically when
  185. you start Windows.
  186.  
  187. A  note  about  WSOCKAID.DLL: This is  a  network  software
  188. vendor  specific  DLL  containing  a  few  functions   that
  189. WINSOCK.DLL does not offer. Currently.you will not get this
  190. DLL  from your vendor. The version in this pack was written
  191. by  me  explicitly  for FTP Software's  PC/TCP  stack.  The
  192. function  that  WLPRSPL  (or  better  WLPR.DLL)   uses   is
  193. retrieving  the  user's  login  name.  If  you   have   FTP
  194. Software's  PC/TCP 2.1 or higher, this DLL  will  take  the
  195. needed  information from the PCTCP.INI  file  (or  whatever
  196. your  PCTCP environment variable is set to). If you  use  a
  197. different  stack, you may create the following  section  in
  198. your  WIN.INI in order to make this version of WSOCKAID.DLL
  199. work:
  200.  
  201.          [WSockAid]
  202.          user=<your_userid>
  203.          lprserver=<your_default_lpr_server>
  204.          lprqueue=<your_default_queue_on_lprserver>
  205.          
  206.  
  207.  
  208. First Start
  209.  
  210. When  you  start  WLPRSPL for the first time  you  have  to
  211. specify the spool directory you want to use. In the  dialog
  212. that  appears you can also create new subdirectories.  Once
  213. you  have selected the spool directory, the place where the
  214. QDF shall be located must be defined. It is possible to use
  215. a  shared QDF that resides on a network drive and which  is
  216. maintained  centrally. The file that you specify  does  not
  217. have  to exist at this time. It will be created as soon  as
  218. you define the first queue in WLPRSPL.
  219. After  this  first time configuration you may define  local
  220. queues for all remote printers you want to utilize. This is
  221. described  in  the  next  section. After  this  you  should
  222. connect appropriate Windows printer drivers to those ports.
  223.  
  224. Defining Local Queues
  225.  
  226. In  order  to  define  local queues in  WLPRSPL  start  the
  227. program  if not yet running, restore the program window  if
  228. the   program  is  iconized,  and  go  through   the   menu
  229. (Setup/Queues/Define new queue...) or press  Alt-Insert.  A
  230. dialog  pops up where you can enter a new queue definition.
  231. The fields in this dialog have the following meaning:
  232.  
  233. Local Spool File Name:  Name of the spool file (without
  234.                    path) that shall be used for the local
  235.                    queue (required).
  236. Remote Queue Name: Name of the queue on the remote print
  237.                    server (required).
  238. Remote Host Name:  Internet host name or address of the
  239.                    remote print server (required).
  240. LPR Queue Type:    Type of the files which will be
  241.                    printed. This must be a one character
  242.                    code as defined by RFC 1179 (see Usage
  243.                    Notes). Default is type 'f'.
  244. Banner Page:       Specifies if a banner page shall be
  245.                    printed for each print job (may be
  246.                    overridden by server setup).
  247.  
  248. When you press OK a new port is created. You can not use  a
  249. spool file name that already exists. Now you can go to  the
  250. Control Panel/Printer Setup, install a printer driver  that
  251. matches  the  remote  printer,  and  connect  it   to   the
  252. previously  created  port.  Take  care  that  all   printer
  253. characteristics  you  define  match  the  remote   printer.
  254. Normally  a  data  stream  from a  Windows  printer  driver
  255. overrides settings of the remote printer defaults.  If  you
  256. select settings that the remote printer does not support it
  257. may hang.
  258.  
  259. After  installing the printer driver you may print  to  the
  260. remote printer from any Windows application.
  261.  
  262. Adjusting WLPRSPL Parameters
  263.  
  264. Through the menu (Setup/Timing...) you can get to a  dialog
  265. box where you can change the following operating parameters
  266. of WLPRSPL.
  267.  
  268. Timer Ticks in sec. This entry defines the time steps  used
  269. by  WLPRSPL to periodically check for possible spool files.
  270. It can be 0 which means that this feature is disabled. When
  271. the  Print Manager is used there is no need for this  spool
  272. file  polling because WLPRSPL is notified through a message
  273. when a spool file is written. But with this feature enabled
  274. it  is  possible to create spool files in DOS sessions  and
  275. have  them automatically entered into the WLPRSPL  queueing
  276. system (see Usage Notes).
  277. Time  to  wait  for LPR to complete Time in seconds  during
  278. which  a print job should be completed. If it takes  longer
  279. the user is notified and may cancel the transfer.
  280. Max  # of tries to send file before queue is disabled  Max.
  281. number of retries a print job is allowed to take before the
  282. user  is notified of the potential problem. If this  number
  283. is  reached  during a transfer the local queue is  disabled
  284. and  the user gets a notification. All spool files  in  the
  285. queue stay there until the user re-enables the queue.
  286.  
  287. Normally you can leave the default values as they  are.  If
  288. you notice a performance degradation on slow PCs due to the
  289. spool  file polling set the Timer Ticks to a higher  value,
  290. or  set it to 0 if this feature is not needed. If you often
  291. print large documents or you only have a slow link to  your
  292. print server you may want to set the Time to wait...  to  a
  293. higher value.
  294.  
  295. WLPRSPL Running ...
  296.  
  297. When  WLPRSPL is active you normally don't notice  anything
  298. of  its  existance  because the spooling  is  done  in  the
  299. background.  So WLPRSPL generally runs as an  icon  on  the
  300. desktop.  If you want to change something in the  settings,
  301. restore  the  WLPRSPL window. In this window  you  see  the
  302. following information being displayed:
  303.  
  304.    the time the spooler was started
  305.    the currently used spool directory
  306.    the currently used Queue Definition File
  307.    a  listbox  displaying the states of  all  local  queues
  308.    (more detailed description below)
  309.    the  Windows  printer  driver  used  for  the  currently
  310.    selected (and therefore highlighted) queue
  311.  
  312. The  individual columns in the listbox have  the  following
  313. meaning:
  314.  
  315. Symbol  If blank the local queue is currently not connected
  316. to  a printer driver, if ">" it is connected, if "*" it  is
  317. connected and is currently selected as default printer.
  318. Loc.  Queue  Name  of the local queue  (and  of  the  spool
  319. file).
  320. Rem. Queue Name of the queue on remote print server.
  321. Host Name of remote print server.
  322. Files spooled
  323. unsucc./succ.  Number of print jobs sent  over  this  queue
  324. since  WLPRSPL  was started or since the  queue  statistics
  325. were reset.
  326. Files queued Number of unsent print jobs.
  327. Spool  retries  Number of times the current print  job  was
  328. tried to be sent.
  329.  
  330. Disabled  queues are shown with red text. A queue  that  is
  331. active  sending  a  print job is shown in  green,  and  the
  332. statistics are replaced with a progress message.
  333.  
  334. WLPRSPL Menu Options
  335.  
  336. In  the following list all commands are enumerated that can
  337. be  executed through the menu. On the right hand  side  the
  338. keyboard short cut is shown.
  339.  
  340. Files
  341.    Delete next spool file                         (Delete)
  342.        Delete next spool file in selected local queue.
  343.    Delete all spool files in queue
  344.        Delete all spool files in selected local queue.
  345.    Delete all spool files
  346.        Delete all spool files in all local queues.
  347.    Kill LPR Task
  348.        A currently running transfer is cancelled.
  349.    Control Panel
  350.        Call the control panel.
  351.    Exit                                 (Ctrl-X or Alt-F4)
  352.        Exit WLPRSPL.
  353. Queues
  354.    Show remote queue status                       (Ctrl-Q)
  355.        Shows   the   state   of  the  remote   queue   that
  356.        corresponds   to   the  selected  local   queue   by
  357.        executing  an  LPQ request. The dialog  box  showing
  358.        the  remote queue status then allows refreshing  the
  359.        display  and  cancelling one or  more  remote  print
  360.        jobs.
  361.    Enable/Disable queue  (Doubleclick on queue in listbox)
  362.        The selected local queue is enabled/disabled.
  363.    Scan queues immediately(Click right mouse button on WLPR
  364.    SPL symbol)
  365.        The  spool directory is scanned for new spool  files
  366.        immediately.
  367.    Reset selected queue                           (Ctrl-R)
  368.        The  statistics  of  the selected  local  queue  are
  369.        reset.
  370.    Reset all queues
  371.        The statistics of all local queues are reset.
  372. Setup
  373.    Timing...
  374.        Activates   the   dialog  described  in   "Adjusting
  375.        WLPRSPL Parameters"
  376.    Spool-Directory...
  377.        Activates  the  dialog for selection  of  the  spool
  378.        directory described in "First Start".
  379.    Queues >
  380.        Define new queue                       (Alt-Insert)
  381.            Activates  the dialog for defining a  new  queue
  382.            described in "Defining Local Queues".
  383.        Edit queue data                         (Alt-Enter)
  384.            Activates  the dialog for defining a  new  queue
  385.            described   in  "Defining  Local  Queues".   The
  386.            dialog  is  filled  with the data  defining  the
  387.            currently selected local queue.
  388.        Delete queue                           (Alt-Delete)
  389.            Deletes the currently selected local queue.
  390.        Reload queue definitions
  391.            Reloads   the   queue   definitions   from   the
  392.            currently active QDF.
  393.        Load queue definitions...
  394.            Activates  the  dialog  for  selecting   a   QDF
  395.            described in "First Start".
  396.        Save queue definitions
  397.            Saves changes made to a queue definition in  the
  398.            currently active QDF.
  399.        Save queue definitions as...
  400.            Saves  the current queue definitions  to  a  QDF
  401.            which  must  first be selected. If wanted,  this
  402.            new  QDF  can be made the currently active  QDF,
  403.            which  will  then be used the next time  WLPRSPL
  404.            starts.
  405.  
  406. Changes to queues are not automatically saved. This has  to
  407. be done either through Setup/Queues/Save queue definitions,
  408. or  by  accepting  the automatic saving  when  WLPRSPL  (or
  409. Windows) is terminated.
  410.  
  411. Usage Notes
  412.  
  413.    When  the  spool  directory is changed after  the  first
  414.    installation, new ports are automatically generated  for
  415.    all  local queues in WIN.INIs [ports] section. The  user
  416.    then  has  to  manually connect all printer  drivers  to
  417.    those   new   ports.   This  is   currently   not   done
  418.    automatically.
  419.    If  you have a DOS application that can print to a  file
  420.    in  addition to printing to a real LPTx or COMx, you can
  421.    use   WLPRSPL  to  spool  those  files.  Just  let   the
  422.    application print to the file that defines the port  for
  423.    the  desired  network  printer  (i.e.  C:\SPOOL\HP.PCL).
  424.    Then  there  are  two  possibilities  to  initiate   the
  425.    transfer: Either you have set the Timer Ticks to a  non-
  426.    zero  value. In this case you only have to wait for  the
  427.    specified  number  of seconds, and WLPRSPL  inserts  the
  428.    file  into  its queueing system. Or you switch  back  to
  429.    Windows with Alt-Tab and select Queues/Scan queues  from
  430.    the menu.
  431.    The  state  of all queues (enabled/disabled, number  and
  432.    names  of  spool files) is saved in the spool  directory
  433.    as  file filename.SPL when WLPRSPL is terminated,  where
  434.    filename  corresponds to the name of the QDF. When,  for
  435.    example,  the  name of the QDF is WLPRSPL.QS,  then  the
  436.    name  of the queue state file is WLPRSPL.SPL. This  file
  437.    should  not be deleted because it is needed to determine
  438.    to which local queue any unsent spoolfiles belong.
  439.    When  querying  the status of a remote  queue  with  the
  440.    "Queues/Show  remote queue status" menu option  you  can
  441.    also  remove  one or more remote print jobs by  pressing
  442.    the  "Remove  remote jobs" button. Then you  get  a  new
  443.    dialog box where you have to fill in the job numbers  of
  444.    all  print  jobs you want to cancel, all separated  with
  445.    blanks. You can also first select the lines in the  list
  446.    box  that  show the print jobs you want to cancel.  When
  447.    you  then  press  the "Remove remote jobs"  button,  the
  448.    first  whole  number found in each selected line  (which
  449.    in  most cases is the job number) is put as default into
  450.    the following dialog.
  451.    The   following  file  types  are  defined  by  the  LPD
  452.    specification  (RFC 1179) and can be  specified  in  the
  453.    queue  definition dialog. These types inform the  server
  454.    on  how to process (or filter) the print data. Normally,
  455.    since  a  Windows printer driver generates  raw  printer
  456.    data,  the  type  'v'  should  be  appropriate  for  all
  457.    queues.  But  note  that not every print  server  allows
  458.    this  type for all queues. The LPD that belongs to IBM's
  459.    AIX  3.2  for example does not like any other type  than
  460.    'f'  for  data  sent  to a PostScript  queue;  even  'o'
  461.    (PostScript format) is not accepted. What type you  have
  462.    to  select  for a given queue depends on the  server.  A
  463.    general  rule might be: "First try 'v', if this  doesn't
  464.    work  try 'l', if this still doesn't work try 'f'." This
  465.    should  cover 99% of all cases (correct me if I'm wrong,
  466.    that's  just  my experience with the printers/servers  I
  467.    tested the program with).
  468.  
  469.    v   Raster or binary format
  470.        Data is sent to printer 'as is'.
  471.    f  Formatted file
  472.        All ASCII control characters except HT, CR, LF, FF,
  473.        and BS are discarded.
  474.    l  Print leaving control characters
  475.        Like 'f', but control characters are not removed.
  476.    o  PostScript file
  477.    c  CIF format
  478.        Data is treated as CalTech Intermediate Form
  479.        graphics language.
  480.    d  DVI format
  481.        Data is treated as TEX output.
  482.    g  Plot file
  483.        Data is treated as output from the Berkeley Unix
  484.        plot library.
  485.    n  ditroff output
  486.    t   troff output
  487.    p  Print with 'pr' command
  488.    r   FORTRAN file
  489.        1st column of file is interpreted as FORTRAN
  490.        carriage control.
  491.  
  492. Licensing and Registration
  493.  
  494. This software is not free. It is shareware. You are granted
  495. the  right to test this software for a period of  30  days.
  496. After   this   you  have  to  register  the  product   (see
  497. registration form at the end of this document) and, if this
  498. applies  to you, pay the required registration fee.  Again,
  499. even if you do not have to pay the fee please register  the
  500. program  in order to keep you informed of  program  updates
  501. and to give me a feedback on how much the program is used.
  502.  
  503. You  may redistribute this program to other persons as long
  504. as  you  keep the package complete with all the files  that
  505. are  listed  in the "Contents" section at the beginning  of
  506. this document.
  507.  
  508. If  you  cannot print the Word for Windows 2.0  version  of
  509. this  documentation and find the plain  ASCII  version  too
  510. ugly,  and  are reachable via e-mail, I can send  you  this
  511. documentation as a PostScript file.
  512. Registration Fee
  513.  
  514. Individual  private  users do not  have  to  pay  any  fee.
  515. Educational institutions belong to Category I,  all  others
  516. fall  to  Category II. Please refer to the following  table
  517. for  pricing  according to the number of licenses.  A  site
  518. license  allows you to make an unlimited number  of  copies
  519. for your site/company.
  520.  
  521. Licenses  Cat.  I  Price  per License  Cat.  II  Price  per
  522. License
  523. 1-9 20 US$ 40 US$
  524. 10 or more 16 US$ 32 US$
  525. 20 or more 10 US$ 20 US$
  526. Site License 400 US$ 800 US$
  527.  
  528. If  you want to pay in German currency, multiply the  total
  529. amount in US$ with a factor of 1.5 to get the price in DM.
  530.  
  531. Change Log
  532.  
  533. Version 3.0 Final Release:
  534.  
  535.    Added the possibility of removing remote print jobs.
  536.  
  537. Version 3.0 Beta 2:
  538.  
  539.    Fixed a bug in the Spool Directory dialog.
  540.  
  541. One final word ...
  542.  
  543. Tell  me  everything you like or dislike about this program
  544. in  order to let me make it better. Tell me about functions
  545. that  you  would like to see added. Tell me about  problems
  546. you have encountered.
  547.  
  548. You  can  reach  me  under the following  E-mail  addresses
  549. (first in the list preferred):
  550.  
  551.     th.heil@kfa-juelich.de
  552.     ich211@zam001.zam.kfa-juelich.de
  553.     ich211@djukfa11.bitnet
  554.     ich211@ich210.ich.kfa-juelich.de
  555.  
  556. or by ordinary mail as
  557.  
  558.     Thomas Heil
  559.     Hindenburgstr. 50
  560.     41352 Korschenbroich
  561.     Germany
  562.  
  563. Registration Form
  564.  
  565. (Please  register WinLPR when you decide to use  it  beyond
  566. the trial period of 30 days.)
  567.  
  568.  
  569. Name:
  570. Institution:
  571. City/Town and
  572.  ZIP/Post Code:
  573. State:
  574. Country:
  575. Phone number:
  576. FAX number:
  577. E-Mail address:
  578. Customer Numberfrom a previous registration
  579.  
  580.  
  581.  
  582. I would like to register _______ WinLPR 1.0 licenses
  583.  
  584. for         private use.
  585.             an educational/no-profit institution.Total price:    US$
  586.             a commercial/for-profit institution. Total price:    US$
  587.  
  588. Payment:  Cash     Cheque
  589.  
  590.  
  591.  
  592.  
  593.  
  594.           Date/Signature
  595.  
  596.  
  597. Please mail this form (with a possible fee included) to
  598.  
  599.        Thomas Heil
  600.        Hindenburgstr. 50
  601.        41352 Korschenbroich
  602.        Germany
  603.  
  604.  
  605.