


     NPRN - Network Printing for Novell Networks
     -------------------------------------------
     Freeware by Scott Wertz



     NPRN is a utility that places multiple print jobs into Novell 
     print queues very quickly.  It is much faster than using
     COPY MYFILE.TXT PRN, and won't run multiple jobs together like
     COPY *.TXT PRN does.

     NPRN is easy to use.  Just type NPRN followed by a list of 
     file specifications that tell it where to find the files you wish
     to print.  All of the following are valid NPRN commands:

     NPRN MYFILE.TXT
     NPRN *.TXT
     NPRN H:\DOCS\*.TXT
     NPRN H:\DOCS\*.TXT I:\BM\59004.* J:\MANUALS\*.PCL

     Why should you want to use NPRN?  Because it's blazing fast, for
     one.  But it also reduces network traffic (more on that in a second),
     saves paper by putting multiple jobs under one print banner, and
     makes it easier to print multiple files.  Novell's NPRINT can do 
     sort of the same thing, but it has one flaw: it only prints using the 
     default printcon job, unless you enjoy ugly command lines that are 
     as bad as CAPTURE commands.  NPRN prints using the current CAPTURE
     settings.  Let's take a look at how a network print job normally 
     works, then how it works with NPRN.


     When a user types COPY *.TXT LPT1:, the following events occur:

     1)  The file server receives a request from the workstation for *.TXT.
     2)  The file server sends *.TXT across the wire to the workstation's
         memory (trip #1).
     3)  The workstation sends *.TXT to its printer port using DOS BIOS
         calls (SLOOOOOWWW!).
     4)  The NetWare shell intercepts the print request, and redirects
         the print job to a NetWare queue (trip #2, and more SLOOOOWW).
     5)  The *.TXT files are sent back across the wire to the server
         where they are dumped into the queue as one big print job
         with no formfeeds (trip #3).
     6)  That one print job again travels across the wire to the printer,
         where the files all run together because there were no formfeeds.
     7)  The user comes and yells at you, and you tell him to print each
         file separately, and he/she then gets one banner per file.

     Each file made four trips across the network to reach the printer.


     When a user types NPRN *.TXT, the following events occur:

     1)  NPRN tells the server to open a job in the print queue.
     2)  NPRN tells the server to copy the first file from one location on
         its hard disk to the print queue, which is also on its disk.
     3)  NPRN appends a formfeed (ASCII 12) onto the print job.
     4)  NPRN repeats steps 2 and 3 for each file.
     5)  The print job is closed and sent to the printer, where each file
         prints separately, but with only one print banner.
     6)  The user comes to you and asks how it ran so fast.

     These files made one trip across the wire: from the server to the
     printer.  Isn't that what you intended?


     Options
     -------
     NPRN has a few command-line options you can use.  First, you can
     tell it to use a printer port other than LPT1 with the /P option:

     NPRN /P3 *.TXT             -  Prints all *.TXT files on LPT3

     You can also use NPRN with HP printers that support HPGL print/plot
     modes using the /H option.  This tells NPRN that you are sending
     HPGL files to the queue, so you can't use a normal "formfeed"
     character between each file.  Instead, NPRN will tell the printer
     to exit to PCL mode, issue a Page Eject command, then switch back
     to HPGL mode.  Unfortunately, HP printers don't support the HPGL
     "PG;" command to eject the page, or this would be much simpler.

     NPRN /H *.PLT


     Performance Issues
     ------------------
     I tested NPRN on our NetWare 3.11 server.  For a 3MB PCL print file,
     COPY took just over thirty seconds to queue the file.  NPRN took 
     under a second.  This file was on a network drive, so NPRN could
     tell the server to just copy it into the queue.  If you copy from
     a local drive, your workstation has to send it across the wire to
     the server, but since NPRN does not depend on BIOS calls and TSRs
     that intercept them, it's still much faster (about five seconds in
     the above example).  The same thing applies if you're printing a
     file that resides on server A and you're printing to a queue on
     server B.  By the way, 3MB may sound big for a print file, but if
     you work in a CAD shop like I do, you see print files like that 
     all the time, often in groups - one per page of a CAD drawing!


     Limitations
     -----------

     o  Since NPRN uses the ASCII 12 character between files, or an
        HP PCL "Page Eject" command when in HPGL mode, it can 
        only be used on printers that accept those commands as a formfeed.
        That's fine for LaserJets and line printers, but won't work for 
        some other types of printers.

        A future version could include command-line parameters which will 
        tell NPRN to use a different End-Of-Page command.  Send me your 
        requests for supported printers!!!

     o  NPRN will work noticeably faster when printing files that reside
        on network drives to a queue on the same server.  Even if you're
        printing from a local drive or to another server's queue, NPRN
        is still much faster than the "old fashioned way", though.


     Licensing
     ---------
     This program comes with a standard "Wertz" license.  You can use it,
     distribute it, trash it, or anything you want as long as you're not
     profiting from it or suing me for damages.  The program's free, and
     you get as much support as "free" buys.  As usual, though, I enjoy
     hearing how well (or how poorly) the program works for you, and I
     do take requests for enhancements.


     History
     -------
     v1.0   - Released 6/14/93 by Scott Wertz
     v1.0a  - 6/16/93  Scott Wertz
              Minor cosmetic changes, including: don't change banner
              text to "NPRN Job" if the user specified something else.
     v1.0b  - 7/27/93  Scott Wertz
              Added check for Formfeed at end of user's file - don't add
              more if there already is one.
     v1.0c  - 8/18/93  Scott Wertz
              Added HPGL capability
              Added file type detector to warn user if /H was omitted
              Added "real" command-line parsing, with following options:
                 /H    HPGL mode (uses different formfeed command)
                 /P#   Printer port number
              Updated help screen


     Reaching the Author
     -------------------
     Please contact me by electronic mail or postal mail.  
     
     DO NOT CALL MY HOME.


     Scott Wertz                   CompuServe: 71541,3051
     9740 Michael Drive              Internet: 71541.3051.compuserve.com
     Streetsboro, OH  44241  
  
