Copyright: NIPrint, (C) 1994-96 Network Instruments, LLC


Contents

Introduction

License Agreement

Installation

Using NIPrint

Configuring Local Print

Configuring Remote Print

How To License

Description of the NIPrint Screens

General Settings Dialog

Local Print Configuration Dialog

Add/Edit Local Printer Dialog

Local Advanced Print Settings Dialog

Remote Print Configuration Dialog

Add/Edit Remote Printer Dialog

Remote Advanced Print Settings Dialog

Running NIPrint as a service under Windows NT

Trace Windows

NILPT - Printing from a DOS Window

Program Flags

Troubleshooting

White Papers

Overview of the Line Printer Daemon Protocol (LPD)

For Help on Help, press F1

© 1994-97 Network Instruments, LLC Minneapolis, MN  55426 USA


Introduction

NIPrint

© 1994-97 Network Instruments, LLC

All Rights Reserved

Network Instruments, LLC

Fourth Floor

8800 West Highway Seven

Minneapolis, MN, 55426

Voice	(612) 932-9899

FAX	(612) 932-9545

BBS	(612) 932-9590

info@netinst.com

ftp.netinst.com

www.netinst.com

Welcome to NIPrint - Network Instruments LPD/LPR Print Server for Winsock.

NIPrint - Network Instruments Print Server for Microsofts Winsock is a leader in a new generation of high performance print servers based on Windows sockets.  NIPrint employs the industry standard LPD/LPR protocol to transfer print jobs to and from remote hosts and Windows PCs.  Using the LPD/LPR protocol makes NIPrint inherently compatible with the vast majority of UNIX and other systems that implement LPD services.

NIPrint contains both a complete 16-bit version for Windows 3.x and a complete 32-bit version for Windows NT and Windows 95.  NIPrint's install will auto-detect your working environment and offer to install the appropriate version.  We recommend you use the 32-bit version if you are using Windows 95 or Windows NT, and use the 16-bit version if you are using Windows 3.x.

NIPrint can be used as a stand alone printing utility and, when supplemented by the TCP/IP Telnet and FTP programs provided with Microsoft 32 bit VxD Winsock, it can create a very functional TCP/IP package that will satisfy the majority of your networking needs.

NIPrint can enrich any commercial TCP/IP package providing immediate, high-speed, reliable, bi-directional printing.  These printing features are often either overlooked or poorly implemented in many commercial TCP/IPs.  In either case, the NIPrint Server will be an excellent addition to your networking utilities.

NIPrint has been designed to provide bi-directional (local and remote) printing capabilities between Windows PCs and UNIX servers.  NIPrint is a full implementation of UNIX LPD and LPR for the Windows Winsock environment.  Because each NIPrint program contains a complete server and client, any Windows PC with NIPrint installed can become a local print server for any other Windows PC or any UNIX system.

If you have Network Instruments FarPRINT (LPD/LPR NLM for a Netware Server) installed on your Netware server, NIPrint will also support bi-directional printing capabilities to or from the Netware Server.  Because TCP/IPs LPD interface is inherently more efficient than SPX (the protocol Netware uses to print)CAPTURE.EXE (the utility Netware uses to transfer print jobs), you may find that FarPRINT and NIPrint provide a considerably faster, more robust printing environment than the standard Novells printing utilities.

Although both Windows for Workgroups and Novell have their own printing utilities, if your network is based primarily on UNIX, NIPrint can provide a consistent printing interface for all LAN printing needs.

NIPrint provides high flexibility without sacrificing performance.  For Local Print, NIPrint can be configured to print to all ports present on the Windows PC simultaneously.  For example, you can install three different printers on three LPT ports plus four printers on all four COMM ports.  You will be able to perform local printing from a UNIX or any other system with LPD/LPR capabilities to any and all of these printers.  If you need more printers than in the example above, NIPrint can accommodate over 1000 additional printer ports - as long as they are available to Windows Print Manager.

NIPrint can receive multiple print requests simultaneously (up to 32 at once) from multiple hosts or Windows PCs.

NIPrints Remote Print can be configured to print to 1024 remote printers installed on one, or multiple UNIX or other hosts.


License Agreement

NIPrint

© 1994-97 Network Instruments, LLC.

All rights reserved

NIPrint - Network Instruments Print Server for Winsock - is neither freeware nor shareware.  This is a commercial software package that is a subject of the international copyright laws.  Network Instruments, LLC reserves all rights on development and distribution of the NIPrint package.

The DEMO of NIPrint can be passed to any potential NIPrint user as long as it is passed in DEMO and NOT licensed form.

NIPrint is sold either as a single user copy or is licensed for use on multiple Windows PCs.

A single user NIPrint is licensed for use on one Windows PC.  It can not be shared, passed or sold for commercial or any other use and can be used on ONE Windows PC only.

If NIPrint is licensed for multiple station use (excluding the multi-site license), it can be installed on ONE LAN ONLY, AT ONE SITE for ONE ORGANIZATION.  The number of installed copies can not exceed the number of Windows PCs for which NIPrint is licensed.

Two types of unlimited licenses are available for NIPrint: a)  single-site unlimited license and b) multi-site unlimited license.  The single-site unlimited license may be used by a SINGLE ORGANIZATION on ONE physical site.  A multi-site unlimited license may be used by a SINGLE ORGANIZATION on MULTIPLE physical sites.  Organizations that maintain a campus or group of buildings in the same ZIP or Postal code are considered ONE physical site.

An ORGANIZATION is defined as a business, company, partnership, corporation or entity, or wholly owned subsidiary of the business, company, partnership, corporation or entity that may use the NIPrint software.  A LAN is defined as a collection of PCs and hosts all connected by LAN cabling, bridges, routers, or other routing devices.  A SITE is defined as the ONE physical building that the owner of the NIPrint license uses to conduct business, or maintain a presence.  The term MULTI as described in "multi-site" is defined as more than one.

Under multiple station licensing, the Identification and License number are assigned based on the user and the organization  name.  Once licensed, neither the Identification and License number nor the NIPrint software can be shared, passed or sold for commercial or any other use and can only be used on Windows PCs on ONE LAN and for ONE ORGANIZATION.

To purchase additional NIPrint licenses, or to upgrade your current license count, contact Network Instruments, LLC at:

Network Instruments, LLC

Fourth Floor

8800 West Highway Seven

Minneapolis, MN, 55426

Voice	(612) 932-9899

FAX	(612) 932-9545

BBS	(612) 932-9590

info@netinst.com

ftp.netinst.com

www.netinst.com

You may use the product called "NIPrint" or "Network Instruments Print Server for Winsock" only if you agree with the above stated license agreement.


How to License

NIPrint is always sold in a DEMO version.  The DEMO version can then be licensed to become a fully functioning product.  NIPrint will run in DEMO mode until it is licensed.  The following instructions describe how to license NIPrint in its different modes:

DEMO Version

If you want to run NIPrint in DEMO mode, you do not need to license the product to evaluate it for 21 days.  Simply install NIPrint, and it will function for 21 days without restriction.  Should you decide that you would like to purchase NIPrint, contact Network Instruments or your Dealer or Distributor for a license number to activate your DEMO copy of NIPrint.

Single-PC License

If you have purchased a single Windows PC license of NIPrint, you will need to select the "License" ->  "File" from the NIPrint menu and enter your name and company name.  This will generate an Identification number for you and your company.  You can then enter your License number to activate NIPrint in single user mode.

If you would like to run more than one NIPrint server on your network, you will need to license NIPrint for the number of PCs that will be running NIPrint.

Multi-PC License

To license NIPrint for multiple PC use, select the "License" -> "File" from the NIPrint menu and follow instructions in the Licensing dialog.

A unique Identification number - based on your name and company name - will be created for you.  You will have to send (fax) this information with the number of stations you want to license, to Network Instruments, LLC.  After you receive a License number from the Network Instruments, LLC, you need to enter the licensing information in the licensing dialog of ONE NIPrint. NIPrint will then "auto-license" any lesser licensed NIPrints to the correct user count, once the first NIPrint PC is licensed. Thus, you will only need to run one NIPrint with the license numbers entered.  You can then continue to install additional NIPrints, and as long as you do not install more NIPrints than you are licensed for, the installed NIPrints will auto-license each other.

For updating NIPrint to a higher user count - once you update one NIPrint to a certain user count, it will automatically update all other copies of NIPrint running on the LAN.  Each of these, in turn, will auto-update any other NIPrints on the LAN.

To ReLicense (upgrade), you need to send your name, company name, Identification and License number to Network Instruments, LLC.  Also, enclose the number of station licensees you own and the number you wish to upgrade to.  Depending on how you purchased NIPrint, enclose a check, money order or VISA/MC/American Express card number with expiration date for the difference in price between your current license and the new license plus shipping.  Minnesota Residents please add a 6.5% sales tax.

Network Instruments will provided you a new license number which you will have to enter on ONE installed copy of the NIPrint software.  To do this select "File" -> "ReLicense"  from the NIPrint main window and enter the new license number.


Installation

The NIPrint Install program asks a few questions about the directory in which to install the NIPrint files, the directory where the HOSTS file resides (if you have one), and the directory where NIPrint should store print jobs.  After these questions are answered, Install transfers the NIPrint files, creates the NIPrint Program Manager group with the NIPrint program icon ready to run.

If the NIPrint server is purchased as a single PC copy, you are licensed to run only one copy of NIPrint.  If you want to run more than one NIPrint server on your network, you will have to purchase additional licenses.  Without licensing, NIPrint will not allow you to run more than one copy of the software on the network.  There is a wide range of seat licenses that will accommodate all possible network printing needs starting from the smallest LANs to LANs that require 250, or even an Unlimited Windows PC license.  For more information on licensing refer to the  License Agreement  and  How to License  sections of this help file.

For NIPrint to run properly it requires Microsoft Windows and a Winsock 1.1 TCP/IP installed and running.

The recommended choice of Winsock TCP/IP is the Microsoft 32 bit VxD TCP/IP Windows Sockets 1.1 interface.  Microsoft's TCP/IP requires Windows for Workgroups.

NIPrint MAY work with other Winsock TCP/IP's.  Not all Winsock TCP/IP's on the market are truly Winsock 1.1 compatible, which means they do not support all Winsock functions, or support them in a limited manner.  If you do not have compelling reasons to use a Winsock TCP/IP from another manufacturer, we suggest that you use the Microsoft 32-bit VxD Winsock - it is free and fast - what more can you ask for?.  Microsoft's 32-bit VxD Windsock TCP/IP is fast, and Microsoft distributes it free.

After Install has completed it's job, NIPrint is essentially ready to work.  All you have to do is configure Local or Remote print, or both.  Refer to the  Configuring Local Print  and  Configuring Remote Print   sections in this Help file, or the NIPrint Manual.


Using NIPrint
Using Network Instruments Print Server/Client

To use NIPrint you will need to get a general understanding of how NIPrint and LPD/LPR  works.  This section contains a discussion of the main features of remote and local network printing based on LPD/LPR.

Every UNIX system and each Windows PC has the ability to collect, process, spool and eventually print jobs submitted by applications or by the operating system.  These printing services are usually centered around a spooler.  The spoolers function (for both UNIX and Windows) is to collect print jobs from various programs and submit the print jobs to the various print devices in an orderly fashion.  In UNIX, the spooler is called just that - "the spooler".  For Windows, the spooler is called "Print Manager".

Line Printer Daemon (LPD) is the server side of the network printing process.  Line Printer Remote (LPR) is the client side of the print process.  Both UNIX and NIPrint can function as either server or client or both.  Both LPD and LPR work with a systems spooler (UNIX or Windows) to submit or collect print jobs.

Let's look at what is happening for each direction of network printing from the perspective of the Windows PC.

Local Print: This is when a remote system (UNIX or another Windows PC) sends via LPR a print job to the local Windows PC print server - LPD.  NIPrint's LPD receives the print job and stores it as it is received in a directory on the Windows PC, and when the transfer is complete, NIPrint makes any necessary conversions, and passes it to Windows Print Manager.  Multiple UNIX print jobs can be sent and processed by NIPrint's LPD print server.  Because NIPrint uses non-blocking reads and writeoperations as much as possible, this printing process introduces only minimal interruption at the local PC.

To use Local Print you will need to install and setup LPD/LPR on your remote UNIX or Windows PC.  You will also have to set up the associated LPD/LPR print spooler on the remote system so that it will send print jobs to the IP address of the local Windows PC where NIPrint is installed.  The name of the printer on the remote host must be the same name as the printer assigned to by NIPrint on the local PC.  Once this is complete, you are ready to print.

For example, every time anyone prints to the printer called "johnlp" on UNIX, print jobs will be transparently printed on the local PC through the Windows printer attached to Print Manager called "johnlp"  in NIPrint.  For detailed information how to configure Local Print see the  Configuring Local Print section of this help file or NIPrint manual.

Remote Print: is the opposite of Local Print.  In this case, Windows Print Manager places a print job in a specially designated NIPrint outgoing directory.  The directory on the NIPrint Windows PC is configured with the same name as the remote UNIX printer.   NIPrint picks it from there, makes any necessary conversions, and passes (via LPR) the print job to the UNIX (or another NIPrint) server's LPD.  The UNIX or other Windows PC's LPD is specified by its IP address.

For example, if a user John wants to print to an Epson printer attached to a UNIX system called  "EPSON1", he selects the Windows Print Manager printer "EPSON1" from his Windows application (usually from "File" -> "Print Setup" in the application).  The Windows Print Manager Printer "EPSON1" will have beenhas to have been  previously configured (during NIPrint configuration) to print through the Windows Epson printer interface to the port  "c:\ni\out\EPSON1\job" .  NIPrint picks up the print job and transparently moves it to the UNIX spooled printer designated "EPSON1".  For detailed information how to configure Remote Print see the  Configuring Remote Print section of this Help file, or NIPrint manual.

NIPrint can be configured to print a banner page that displays the name of the user who originated the print job.  Printing the banner can be enabled or disabled by a user for both local and remote printers.

When printing text files, NIPrint can provide the proper conversion from DOS to UNIX format (or UNIX to DOS).  This feature can be enabled permanently, or permanently disabled, or work in an auto detect mode, where it tries to automatically determine if a file is a pre-formatted print file, or a text file and convert it if necessary.

Note:  Although auto detection works well in most cases, it is not always possible to recognize if the file is a formatted print job, or a plain text.  In such cases a user will have to select either the Always Convert or the Do Not Convert option in the Advanced options of the Local or Remote Print Configuration.

All the capabilities described above apply equally whethern you are using multiple Windows PCs with NIPrint installed, UNIX with LPD/LPR installed or NIPrint with Novell's FlexIP.

In the case where two PC's are sharing printers, one PC is functions as a server and one is functions as a client.  These roles can be interchanged at any time depending on the direction of the print request.

In the case where you are using NIPrint and FlexIP, either can be considered as a remote or local system.

For two or more Windows PCs, one can be configured with the Local Print enabled (this wouldill be the server), and the rest with the Remote Print enabled (these wouldill be clients).  In this case, all the PC's with Remote Print enabled wouldill be able to print to the server PC - making the server PC a print server for all other LPR clients on the network.

Context sensitive help is available from every NIPrint window.  Any time you are not sure how to use controls in the current window,  press F1 button, and a context sensitive help section will be displayed.


Configuring Local Print

Local Print allows a NIPrint server to receive print jobs from remote hosts or other NIPrint PCs.  To use Local Print, you will need to configure the Local Print services in NIPrint.  In this mode NIPrint is acting as a "LPD"  server.

The following is a list of steps to configure one local printer on NIPrint.  If you need to install more than one local printer - repeat the same steps for every printer.

1.	Make sure that the "Enable Local Print Server" checkbox is selected in the "Configuration" ->"General Settings" dialog.

2.	Select the "Local Print Configuration" menu option in the "Configuration" menu.  The "LOCAL Print Configuration" dialog will pop upappear.

3.	Press the "Add Printer" button to add a new printer.  Later you can use "Edit Entry" or "Delete Entry" to edit or delete existing printers.

4.	In the "Add/Edit LOCAL Printer" dialog enter the remote system's printer name that will send the print jobs to your station.  From the "Installed Printers"  list select one of Windows Print Manager printers.  If you do not see an entry for the printer type you are going to use, or the printer is connected to the wrong port  - press "Cancel"  to return to the Local Print Configuration window.  Start Windows "Control Panel", and choose "Printers", install missing printer and connect it to the appropriate port.  Return to NIPrint and press the "Add Printer" button again and select the printer you installed.  You may want to check the "Advanced Print Settings" dialog, but we advise you to leave the defaults for now, you can always change them later.  Press "OK" to accept the printer name and printer information.

5.	You will be returnedreturn to the Local Print Configuration dialog.  Press the "Save"  button to save the new printer configuration.

Local Print configuration is complete.

If it was not done previously, you will now need to configure the remote side of the connection.

If the remote machine is another NIPrint server, follow instructions in the Configuring Remote Print section.

For the UNIX host - follow the instructions on installing Remote Line Print Services (LPD) for remote printing in your UNIX system's administrator manual.  Below we provide a few general checkpoints:

1.	Make sure that Line Print Services (LPD) are enabled on your UNIX system.  One of the indications that LPD is functioning can be that "lpd" is running in process table.  If you are not sure whether Remote Line Print services are installed - just try to install them again.  It usually can not hurt.

2.	Create a remote printer with the name that was chosen when configuring Local Print on the NIPrint Windows PC.  The length of the name should not be longer then 39 letters, and is recommended to be 8 letters or shorter.  It should contain only alphabetic characters.

3.	Configure the remote printer entry for the IP address iof the PC where you have installed NIPrint.

For more details on configuring UNIX's LPD/LPR refer to your UNIX manual.

If the remote machine is a Netware server using FarPRINT - follow instructions of how to configure FarPRINT in your FarPRINT


Configuring Remote Print

Remote Print allows a NIPrint server to send print jobs from the Windows PC to a remote host or another NIPrint PC.  To use Remote Print, you will need to configure the Remote Print services in NIPrint.  In this mode, NIPrint is acting as a "LPR" client.

As followsThe following is a list of steps to configure one remote printer on NIPrint.  If you need to install more than one remote printer - repeat the same steps for every printer.

Make sure that the "Enable Remote Print Server" checkbox is selected in the "Configuration" ->  "General Settings" dialog.

1.	Select "Configuration" -> "Remote Print Configuration" from the menu.  The "REMOTE Print Configuration" dialog will appear.

2.	Press the "Add Printer" button to add a new printer.  Later you can use "Edit Entry" or "Delete Entry" to edit or delete existing printers.

3.	In the "Add/Edit REMOTE Printer" dialog type in the name of the printer on the remote host.

4.	If you have a HOSTS file configured on your PC you can use this for your IP address name resolution with NIPrint.  Select a host you want to print to, a list of host names and addresses will be displayed in the Hosts Address listbox.  Select a host you want to print to from the "Hosts File" listbox.  The IP address (or name) should appear in the "Host Address"  editbox.  If you do not have hosts file, just type in the internet address of the system, where you will be sending print jobs.  From the "Installed Printers"  list select one of the Windows Print Manager printers to associate with the remote printer.  The printer type should be the same as the printer interface used on the remote side.

Enter your user name as it is known on the remote system in the "User name on the remote system" box.

You can check "Advanced Print Settings" dialog, but we advise that you keep the defaults for now,; you can always change them later.

Press "OK" to accept the printer name and printer information.

You will return to the Remote Print Configuration dialog.  Press "Save" button to save the new printer configuration.

For Windows 3.x:

Start the Windows "Control Panel" again.  Click on "Printers".  Highlight the printer that you want to associate with the remote printer.  Press "Connect" button.  In the Ports list find the NIPrint printer file port you just created.  It should look something like:

c:\ni\out\EPSON1\job

if the remote printer is called "epson1".

For Windows 95

Start the Windows 95 printer configuration (Start  Setting  Printers).  Double-click on the Add Printer icon, and press the " Next"  button.  Now choose " Local Printer" . [This is correct, even though the printer is on a remote host, Windows 95 considers this a " Local Printer" ].  Click on " Next"  and highlight the printer that you want to associate with the remote printer.  Click on " Next"  and in the Ports Selection list find the NIPrint printer file port you just created.  It should look something like:

c:\ni\out\EPSON1\job

if the remote printer is called "EPSON1".

For Windows NT

You specify a remote printer in NIPrint exactly the same way as for standard Windows, and then go to Print Manager and:

1.	Click on the Print Properties if the File menu.

2.	In the Print Properties dialog look at the " Print To"  combo-box. There are entries for all ports, and at the bottom of the choices there is the entry "Other". Click on "Other".

3.	In the dialog that appears double-click on the entry " Local Port"  and type in the name of the port.

Example: c:\ni\out\LASER\job.

This specifies the name of the file NT will print to, NIPrint will then take this file and transfer it to the remote printer. This path is created the following way:

- c:\ni   - default NIPrint Print directory. See The Preferences " Print directory"  entry to make sure that the name of directory was not changed;

- out - the subdirectory for Remote print;

- LASER - in this example name of the remote printer as it was specified in the NIPrint Remote Print Configuration;

- job - this must always be " job" . This is the name NIPrint looks for when checking whether there are print jobs to transfer.

This completes the Remote Printer configuration.  Whenever you want to print to the remote printer "EPSON1", you can select this printer interface in the "Print Setup"  of the Windows application you are printing from.  Print jobs will be automatically sent to the remote printer.

Now, if it was not done previously, you will have to configure the remote side of the connection.

If the remote side is another NIPrint server, follow instructions in the Configuring Local Print section for the remote station.

If the remote sitde is a UNIX host - follow the instructions on how to install Line Print Services (LPD/LPR) for local printing in your UNIX system administrator's manual.  Below we provide a few general checkpoints:

1.	Make sure that Line Print Services (LPD) are enabled on your UNIX system.  One of the indications that the service is running can be that "lpd" is running in the process table.  If you are not sure whether Remote Line Print services are installed - just try to install them again.  It usually can not hurt.

2.	Make sure that the printer you want to receive remote print jobs on is printing correctly from the UNIX command prompt.  If it does not, fix this problem first.

3.	Create a printer entry on the remote system that will receive remote print jobs with the name that was chosen when configuring Remote Print on the NIPrint server.  The length of the name should not be longer then 39 letters, and is recommended to be 8 letters or shorter.  It should contain only alphabetic characters.

4.	Make sure that the name of the user who has NIPrint configured for remote printing is present in the files hosts.equiv, hosts.lpd, or other file specific to your UNIX system.

For more details on LPD/LPR refer to your UNIX manual.


Description of the NIPrint Screens

The main NIPrint screen consists of the Menu bar, the Settings display, the Status display, the Remote Print Status controls, and the License bar.

The MENU BAR contains "File", "Configuration", and "Help" entries.

The "File" entry contains "License", "About NIPrint", and "Exit" sub-entries.

The "License" (or "ReLicense" if NIPrint is already licensed) entry starts the "License" dialog, which is described later in this manual.  "About NIPrint" displays the version an copyright informationd copyright information, and "Exit" closes the program.

The "Configuration" menu entry contains the "General Settings", "Local Print Configuration", and "Remote Print Configuration" sub-entries.

The "General Settings Dialog"  enables Local and Remote Print, and contains settings that are system wide, as opposed to specific to an individual printer, either Local or Remote.

The "Local Print Configuration" choice displays the dialog to set up and configure local printers.

The "Remote Print Configuration" choice displays the dialog to set up and configure remote printers.

All these dialogs and their sub-dialogs will be described in detail later.

The "Help" entry contains the standard "Contents", "Search For Help On" and "How To Use Help" sub-entries.

The SETTINGS DISPLAY is a gray depressed area containing three lines:

The first line states the NIPrints station (seat) license.  For example: "Licensed for 10 installed NIPrint servers" or "Unlimited station license".

The second line displays the state of the Local Print server, whether it is ON or OFF, and how many printers are configured.

The third line displays whether the Remote Print server is ON or OFF and how many printers are configured.

The STATUS DISPLAY is the black depressed area that displays the current activity of the NIPrint server.

The top half of the Status Display is dedicated to the Local Print information.  It shows whether Local Print server is idle or receiving print jobs for a specific printer.  During the print job transfer, a "thermometer" shows percentage of the transfer complete.

The bottom half of the status display shows similar information for the Remote Print server.

The Remote Print Status controls allow you to query remote print queues, and view the local print queue.

LICENSE BAR  displays the name and the company name of the user to whom the NIPrint server is licensed.


General Settings Dialog

General Settings dialog contains the following items:

Enable Local Print Server - this checkbox must be checked to enable the Local Print server.  If unchecked, the Local Print server is disabled, and the Local Print Configuration menu item is grayed.

Enable Remote Print Server - this checkbox must be checked to enable the Remote Print server.  If unchecked, the Remote Print server is disabled and the Remote Print Configuration menu item is grayed.

Command Timeouts - this groupbox contains two rotary dial timeouts for the Local and Remote Print network negotiations.  They specify the time that NIPrint will wait for the other side to reply during the print job transfer or negotiation.  If a reply does not come within the specified time, NIPrint will cancel the operation.  If it was a Remote Print operation, NIPrint will retry it 20 seconds later, if it was a Local Print operation, NIPrint will wait for the other side to retry.  Defaults for both timeouts are 20 seconds.  They can be set to any time interval between 5 and 60 seconds.

Hosts File - this editbox specifies the directory where a HOSTS file (a file containing network IP addresses with corresponding names) can be found.  Note:  The HOSTS file entry is listed only for a users convenience and is only used during Remote Print configuration to select an existing address from the host file.  If the HOSTS file is not present, it will not affect the performance of NIPrint.  I -n this case, clear (delete) the HOSTS file directory entry.

Print Directory - this is the directory assigned during NIPrint installation which will hold incoming and outgoing print jobs.  The print directory has two subdirectories:  IN - containing in turn separate subdirectories for every Local printer - and OUT - containing the Remote printer subdirectories.  Note: Unless you have a compelling reason to change the Print Directory, please use the default.  If you use the default Print Directory, NIPrint will keepdo so, do not change the Print Directory specified during installation.  NIPrint keeps track of the creation and destruction of all printer port entries in the WIN.INI file and subdirectories in the print directories.  If you do not use the defaultchange the print directory, NIPrint will not be able to remove obsolete entries in WIN.INI and in the printer directories.  When the print directory is changed from the original one, NIPrint will service this new directory and associate all new ports with it.  In this case, it will be up to the user to remove them. old directories and old port entries.  The default Print Directory is "C:\NI".

Clear printer directories on startup - this checkbox specifies whether to delete all un-printed files that accumulate in the incoming and outgoing printer directories when NIPrint loads.

Local print trace - when checked, this enables the local print trace window.  This is only used for problem solving and should be disabled during normal operations.  When checked, the window is not automatically displayed.  To display the trace window, choose "Help" -> "Local trace..".

Remote print trace - when checked, this enables the remote print trace window.  This is only used for problem solving and should be disabled during normal operations.  When checked, the window is not automatically displayed.  To display the trace window, choose "Help" -> "Remote trace..".

Enable remote print status controls - when checked, this enables the main windows display of the "Remote queues" and "Jobs to send" buttons.

Start MINIMIZED - this tells NIPrint to start as an active icon.

Test Print Manager before accepting local Print - this forces NIPrint to test to see if Print Manager will accept a print job before NIPrint will accept a print job from a remote host.  If Print Manager will not accept the print job (for whatever reason), NIPrint will not accept the print job from the remote host.  This in turn will force the remote host into its error cycle.  Typically the remote host will continue to retry the print job indefinitely.  NIPrint will continue to test Print Manager, and not accept the print job (from the remote host) until Print Manager will accept the job.  NIPrint will display a warning window in this condition.

Allow everybody to use local print - as the name indicates, this allows every body to use the LPD service for local print.  This is for every local printer configured.  If this option is checked, the security list is grayed out.

Security list - User name or IP address - When you un-check the "Allow everybody to use local print" checkbox username or IP address editor becomes active.  You can enter either:

A user name (this will be resolved in the following order 1st using a local host file, 2nd using DNS (if configured)) or,

An IP address (this will be used directly without any resolution).

Use common settings for all users - when using Windows 95 or Windows NT, selecting this option will allow NIPrint to use common configuration information in the registry for all users.  In other words, if "John" logs into a Windows 95 system and configures a remote NIPrint printer called "laser", and logs out, and then Rich logs into the same Windows 95 system, the print "laser" will be available for Rich.  When this setting is un-selected, each user will maintain their own NIPrint settings in the registry.

Show application in the Windows tray - if you are running Windows 95, checking this item will display the NIPrint icon in the Tray, as opposed to the status bar.  When the icon is displayed on the Tray, it will not be displayed in the ALT-TAB menu (unless the program window is active).

Trusted users - NIPrint allows you to define security levels for local print.  Pressing the "Trusted users" button in the "Configuration" -> "General Settings" dialog allows you to set the following security for local print:

Edit hosts file - This dialog can be accessed by pressing the "Edit hosts file" button from the "Configuration" -> "General Settings" dialog.  The dialog allows you to edit the local hosts file.


Local Print Configuration Dialog

The Local Print Configuration Dialog is accessed by pressing the appropriate entry in the "Configuration" menu.  If Local Print is not enabled in the "General Settings", the "Local Print Configuration" line is grayed in the "Configuration" menu.

The "Local Print Configuration" dialog contains the following items:

List of Local Printers - this contains the list of local printers in the following format:

Printer names - the names of the Local Printers configured on the NIPrint server.  These are all the names of the Remote printers configured on the UNIX or other remote system.  For example, to print to the printer "windowsp" configured on the local Windows PC with IP address 200.200.200.90, a remote printer called "windowsp" that has as its destination set to the address 200.200.200.90 must be configured on the remote UNIX (or other) host.

It is recommended that the names of printers (both local and remote) be kept to 8 or less characters in length.  This will make the creation of the local print subdirectories simpler.  However, printer names can be up to 39 letters long provided that they contain only ALPHANUMERIC characters and the first 8 characters of each printer name isare unique.

Printer type, containing the type of the printer as listed in Windows "Control Panel",  "Printers" setup.  The printer type is followed by the device the printer is attached to, for example:"EpsonLQ-1170 ESP/P 2 on LPT1:".

Note: even though you can configure a large number of local printers, it is recommended that you remove any unused or obsolete entries.  This will keep the List of Local Printers easier to maintain for the user, and because the search table that the NIPrint server needs to check when accepting every print job will be shorter, it will increase performance of NIPrint.

Under the List of Local Printers there are five buttons:

Add Printer - when this button is pressed, the Add/Edit Local Printer Dialog  pops up.  This dialog allows you to add a new printer entry to the list.

Edit Entry - pressing this button displays the Add/Edit Local Printer Dialog  with the values initialized for the printer entry highlighted in the List of Local Printers.  It allows you to edit the existing printer entries.

Delete Entry - this deletes a highlighted printer entry from the List of Local Printers.

Save - this button saves changes from this and lower level dialogs (the Add/Edit Local Printer and its subdialog the Advanced Local Print Settings).  Note:  Changes will only take effect after pressing the Save button.  Even though the changes may be visible in the List of Local Printers, they are not activated until the "Save" button is pressed.

Cancel - this button restores the state of the List of Local Printers to the previous (before the changes were made) state.


Add/Edit Local Printer Dialog

The Add/Edit Local Printer Dialog appears when a user selects either the Add Printer button - to add a printer, or the Edit Entry button - to edit a printer entry - from the Local Print Configuration Dialog .

The Add/Edit Local Printer Dialog contains the following items:

Printer Name - this editbox allows you to create or edit the printer name.  When creating a new printer entry, default printer names (i.e. "Printer1" ) are automatically created, and should be changed to the actual printer name.  This name should be the name of the remote printer configured on the UNIX or other remote system.  For example, to print to the printer "windowsp"  configured on the local Windows PC with IP address 200.200.200.90, a remote printer called "windowsp" that has for its destination the address 200.200.200.90, must be configured on the remote UNIX host.

It is recommended that the names of printers (both local and remote) be kept to 8 or less characters in length.  This will make the creation of the local print subdirectories simpler.  However, printer names can be up to 39 letters long provided that they contain only ALPHANUMERIC characters and the first 8 characters of each printer name is unique.

Printer type, containing the type of the printer as listed in Windows "Control Panel",  "Printers" setup.  The printer type is followed by the device the printer is attached to, for example:"EpsonLQ-1170 ESP/P 2 on LPT1:".

Installed Printers - this listbox provides a list of printers that are installed and configured in the Printers setup from Windows Control Panel, i.  In other words, the printers that you have installed in Windows.

Under the Installed Printers listbox there are three buttons:

Advanced Print Settings - this button pops up the Local Advanced Print Settings Dialog  which allows you to select a text file conversion mode, and to specify whether a banner page should be printed.

OK - this button accepts the changes.

Note:  the changes accepted here will appear in the Local Print Configuration Dialog  ready to be saved.  They are activated once the dialog is saved.

Cancel - this button cancels the changes donmade in this dialog.


Local Advanced Print Settings Dialog

Local Advanced Print Settings Dialog appears when a user selects the "Advanced Print Settings" button  from the Add/Edit Local Printer Dialog .

The dialog contains the following items:

Convert text from UNIX to DOS format groupbox.  This has three entries:

Autodetect and convert text file - this option sets NIPrint to try andto determine whether the print job is text or binary (formatted print stream).  If it is text, NIPrint will make the appropriate LF/CR conversions.  If it is binary, NIPrint will not do any conversions.  Note: Autodetect works well in most cases, but for some type of printers it is difficult to determine the nature of the print job, in which case one of the options below should be selected.

Always convert - this option should be used only when you are certain that all print jobs from the UNIX system will be text, and the printer interface in Windows does not handle line feeds without carriage returns (laser printers, for example).  Do not use this option when printing between two Windows PC, with Novell's FlexIP, or if the print job comes from the UNIX side formatted for the current printer interface.

Do not convert - select this option when printing formatted print jobs, or when the remote system is not a UNIX host.  The default is "Do not convert".

Print banner page - this checkbox enables or disables printing of the banner page.  If this checkbox is checked, a banner page will be printed out, provided it is also requested by the incoming print job's command file.  If the checkbox in unchecked, the banner page will not be printed, even if it is requested by the incoming print job.  The default is to print the banner page.

Add formfeed - when checked, a formfeed will be added to the end of the print stream.  This is most useful when printing a text file from a UNIX system to a local laser printer.  This option will form-feed the last page out of the laser printer.

Attach printer setup string to print jobs:

Prepend string - this allows you to add a printer setup string to the beginning of a print job.

Postpend string - this allows you to add a printer setup string to the end of a print job.

For more information on the format of the print strings, see the help section titled Printer Setup String.


Printer Setup String

The printer setup string dialog (either prepend or postpend) allows you to add printer setup codes to the beginning (prepend) or the end (postpend) of a local print job.

Examples of setup strings might be a printer reset, or the code to set condensed font, or print in landscape.

Codes can be entered in Octal, Decimal or Hexadecimal.

For example, the Okidata control code for reset is Decimal 27 64, or Hexadecimal 1B 40.  These values would be entered as \27\64 for Decimal, or \1B\40 for Hexadecimal.

Strings can be up to 250 characters long.

Note: Setup strings and control codes are only available from your printer manual, or from your printer vendor.  Network Instruments support staff does not know, and will not provide printer control codes or setup strings.


Remote Print Configuration Dialog

The Remote Print Configuration Dialog is accessed by pressing the appropriate entry in the Configuration menu.  If the Remote Print is not enabled in the General Settings, the Remote Print Configuration line is grayed in the Configuration menu.

The Remote Print Configuration dialog contains the following items:

List of Remote Printers - this contains the list of local printers in the following format:

Printer names - the names of the Remote printers configured for the local NIPrint server.  These are the names of the printers configured on the UNIX or other remote system.

For example, to print to the printer "windowsp" configured on a remote UNIX system with IP address 200.200.200.2 (see the next entry), a local printer called "windowsp" must be configured on local Windows PC.  Note: This UNIX printer should also be configured to receive remote line printing, and the user name of the current (local) PC should be specified in the UNIX file hosts.equiv, or hosts.lpd (or equivalent file).

It is recommended that the names of printers (both local and remote) be kept to 8 or less characters in length.  This will make the creation of the local print subdirectories simpler.  However, printer names can be up to 39 letters long provided that they contain only ALPHANUMERIC characters and the first 8 characters of each printer name is unique.

IP Address - this is the address of the remote system.  If the remote system is a UNIX host and a name server is installed on the network, a host name can be used instead of the IP address.

Printer type - this contains the type of the printer as listed in Windows "Control Panel", "Printers" setup.  For example:  "EpsonLQ-1170 ESP/P 2".

Note: even though you can configure a large number of remote printers, it is recommended that you remove any unused or obsolete entries.  This will keep the List of Remote Printers easier to maintain for the user, and because the search table that the NIPrint server needs to check when sending every print job will be shorter, it will  increase performance of NIPrint.

Under the List of Remote Printers there are five buttons:

Add Printer - when this button is pressed, the Add/Edit Remote Printer Dialog  pops up.  It allows you to add a new printer entry to the list.

Edit Entry - pressing this button displays the Add/Edit Remote Printer Dialog  with the values initialized to the printer entry highlighted in the List of Remote Printers.  It allows you to edit the existing printer entries.

Delete Entry - this button deletes a highlighted printer entry from the List of Remote Printers.

Save - this button saves changes from this and lower level dialogs (the Add/Edit Remote Printer and it's subdialog the Advanced Remote Print Settings).

Note:  Changes will only take effect after pressing the Save button.  Even though the changes may be visible in the List of Remote Printers, they are not activated until the save button is pressed.

Cancel - this button restores the state of the List of Remote Printers to the previous (before the changes were made) state.


Add/Edit Remote Printer Dialog

The Add/Edit Remote Printer Dialog appears when a user selects either the Add Printer button - to add a printer, or Edit Entry - to edit a printer entry - from the Remote Print Configuration Dialog .

The Add/Edit Remote Printer Dialog contains the following items:

Printer Name - this editbox allows you to create or edit the printer name.  When creating a new printer entry, default printer names (i.e. "Printer1" ) are automatically created, and should be changed to the actual printer name.  This should be the name of the remote printer configured on the UNIX or other remote system.  For example, to print to the printer "windowsp"  configured on the remote system with IP address of 200.200.200.2, a printer called "windowsp" must be configured on the remote UNIX (or other) host.  This UNIX printer should be configured to receive remote line printing, and the user name of the current PC should be specified in the UNIX hosts.equiv, or hosts.lpd (or equivalent file).

It is recommended that the names of printers (both local and remote) be kept to 8 or less characters in length.  This will make the creation of the local print subdirectories simpler.  However, printer names can be up to 39 letters long provided that they contain only ALPHANUMERIC characters and the first 8 characters of each printer name is unique.

Host Address - this is the address of the remote system to which the print jobs will be sent.  If the remote system is a UNIX host and a name server is installed on the network, a host name can be used instead of the IP address.  The "Use IP Address..." checkbox determines whether to use an IP address or a host name.  If a hosts file is present on the PC, an existing host address (or name) can be selected from the Hosts File listbox.  Otherwise the host address should be typed in this entry.

Username on remote system - as mentioned above, this is the user name that you have configured for the printer on the remote system that has authentication rights to print to the printer.  This user name should be specified in the UNIX hosts.equiv, or hosts.lpd (or equivalent file).  You must specify a username, but your UNIX LPD may or may not use username authentication.  If the remote LPD does not use username authentication, you may use any alphanumeric characters in this field.

Hosts File - this listbox provides a listing of the hosts from the file called "HOSTS" (see General Settings Dialog about information how to configure system to find the HOSTS file).  If the HOSTS file is not present, or can not be found, this listbox will remain empty, and a warning message will be displayed when starting the current dialog.  The hosts file is used for convenience only,; if you do not have a hosts file it will not affect performance of NIPrint in any way.  To disable the warning message clear (delete) the "HOSTS file"  entry in the General Settings dialog.  A HOSTS file can make the administration of your UNIX or other hosts more convenient.  You may want to obtain a HOSTS file from your UNIX host, or to create one. HOSTS files are text files, and have two fields.  They are:

<IP address> <host name>

So, for example, a HOSTS file might look like:

200.200.163.2  scounix

200.200.163.44 douglas

200.200.163.45 roman

Use IP address (use host name if the checkbox is unchecked) - the "Use IP Address..." checkbox determines whether to pass an IP address or a host name to the Winsock TCP - regardless of what is specified in the Host address box.  The difference here is subtle.  If you check this box, NIPrint will always pass an IP address to the Winsock TCP/IP.  If you have specified a host name, NIPrint will resolve the name to an IP address and send the IP address.  If you uncheck this box, NIPrint will not resolve the host name from any local HOST files.  It will send the name to the Winsock TCP/IP and let either Winsock or your DNS or DHCP resolver resolve the name.

Under the "Use IP address..." checkbox there are three buttons:

Advanced Print Settings - this button pops up the Remote Advanced Print Settings Dialog   that allows you select a text file conversion mode and to specify whether a banner page should be printed.

OK - this button accepts the changes.

Note:  The changes accepted here will appear in the Remote Print Configuration Dialog  ready to be saved.  They will be activated only after they are saved.

Cancel - this button cancels the changes done in this dialog.


Remote Advanced Print Settings Dialog

The Remote Advanced Print Settings Dialog appears when a user selects the Advanced Print Settings button from the Add/Edit Remote Printer Dialog .

This dialog contains the following items:

LPD port (default=515) - this item allows you to select a different port for LPR to send request to.  The default is 515.  This should not be changed unless you specifically have a LPD that listens on an alternate port. The default is 515.

Print job transfer order - these items allow you to reverse the order that NIPrint sends print jobs in.  By default, NIPrint send the command file first, then the data file.  Some LPD hosts can not handle this ordering, and require the data file before the command file.

UNIX printer mode request - this groupbox contains two entries:

Raw mode - this notifies the remote printer interface that the incoming print job is a formatted print job and should not be formatted further. This is a default.

Text mode - this notifies the remote printer that the print job is text and can be formatted by the remote printing interface if necessary.  This will be useful only if your remote printer interface file supports this option.

These two entries have no effect when printing between two NIPrint servers.

Autodetect and convert text file - this option can be used if the print jobs from the UNIX system are mixed between text and formatted print jobs.  In this case, NIPrint will try and determine what type of print job is being sent and convert the print stream if necessary.

Note: Autodetect will work well in most cases but, for some types of print streams, it is difficult to determine the exact type of the print job.  If you experience troubleproblems, one of the options below should be selected.  (Note: This is especially problematic with postscript print jobs.)

Always convert - this option should be used only when you are certain that all print jobs to the UNIX system will be text and the printer interface on the UNIX system does not handle line feeds AND carriage returns.  Do not use this option when printing between two Windows PC, with Novells FlexIP, FarPRINT, or if the print job goes to the UNIX side formatted for the current printer interface.

Do not convert - select this option when printing formatted print jobs or when the remote system is not a UNIX host.  This is the default.

Print banner page - this checkbox enables or disables printing of the banner page.  If this checkbox is checked, the banner page will be printed - provided it is requested by the incoming print command file.  If the checkbox in unchecked, the banner page will not be printed even if it is requested by the incoming print job.  The default is to print the banner page.

Add formfeed - when checked, a formfeed will be added to the end of the print stream.

Check print queue before transfer - this option makes pre-print queue checking optional.  This provides greater compatibility with stand alone network printers with limited LPD/LPR functionality.

The default (and recommended setting) is have the check box checked on.  In other words, to enable remote queue checking prior to sending a print job.  Check this option off only if you are using a standalone network printer (printers with LPD/LPR cards installed) that can only service one TCP port at a time.

Job number position in lpstat listing - this is the position that the UNIX (or remote LPD) system returns the job number.  Since the LPR/LPD RFC does not specifically define the format of the returned lpstat format, different UNIX hosts have implemented this in different ways.  For NIPrint to be able to delete and manage jobs on a remote host, the job number position must be known.  You should indicate this here.  For SCO, the job number is in position 3, for AIX it is in position 4.

LP Plus queue support - this option if for sites that are using Digital Controls LP Plus.  LP Plus allows greater control of UNIX print queues and other print functions on UNIX.  NIPrint has been designed to manage LP Plus print queues when used with LP Plus.  For information on LP Plus, contact Digital Controls at (513) 746-8118, FAX (513) 743-8575.

Print directory (without path) - this option has been

added for the unusual situation where you have multiple printers on different IP addresses with the same printer name.  DO NOT ADD A NAME HERE UNLESS YOU REQUIRE MULTIPLE PRINTERS WITH THE SAME NAME ON YOUR NETWORK.

Adding a directory name in this box (use a name only, do not add the path), will allow NIPrint to store print jobs in an alternately named directory for each LPD printer.  Changing the name of the print directory in this case will not change the printer name that NIPrint will send to the LPD host.


Debug Option
Trace Windows

The executable NIPRINT.EXE has the ability to display a "trace"  window for both Local Print and Remote Print.  The trace windows can be quite useful for problem determination and for general LPD/LPR event reporting.

The trace windows will chronicle the complete negotiation and communication of NIPrint and the remote system.  Should you have problems with printing, this information may be useful for determining where the process breaks down.

The trace window status (i.e. either available or not) is set in the "Configurations" -> "General Settings"  dialog.  To view the Local Print trace window choose "Help" -> "Local trace.." .  To view the Remote trace window, choose "Help" -> "Remote trace.." .  If either choice under Help is grayed, check the status checkboxes under General Settings.

Note:  You should not enable the trace windows unless you have a problem that you need to track.  Enabling the trace windows in the General Settings dialog activates the trace routines within the NIPrint program REGARDLESS of whether the trace windows are visible of not.  When the tracing is enabled, NIPrint will function slower than when tracing is not activated.

Trace windows can be resized and can be hidden or displayed.  Trace windows will hold 64Kb of trace information.  After the 64Kb trace buffer is full, the trace windows will begin to expel the oldest trace data as new data arrives.  Maintaining a 64Kb buffer.


Overview of the LPD Protocol
Overview of the Line Printer Daemon Protocol (LPD)

Line Printer Daemon Protocol (LPD/LPR) is a TCP/IP based protocol that enables remote systems to share their printers through the network.

Because it has clear and simple set of commands, LPD/LPR provides one of the best printing protocols currently available.  Because it is a standard in the UNIX community it will work across many UNIX platforms.

LPD/LPR does not have any security provisions and may not be suitable for networks where it is crucial that no data is transferred in a non-encoded format.  If your system does not use encoding for your terminal sessions, there is no reason to worry about LPD being unsecure.

LPD protocol contains a set of requests for information or directives to receive data, and replies to them.  The Line Printer Daemon itself listens on TCP port 515.  The remote system that calls the LPD uses ports in the range from 721 to 731.  The daemon that requests LPD services is usually called LPR.

When LPD receives a request from LPR to accept a print job, it checks whether the requested printer queue exists on the system, and if it exists, sends confirmation that it is ready to receive a print job.  Then in a series of requests and replies, two files are transferred to LPD.  One file is the print job itself - by convention this file is called a data file.  The other file containings a description of the print job and information of how to process the job on the remote system.  This file is called the command file.  Both data and command files can be received in any order, and as soon as both are received by LPD, the print job is ready to be printed on the specified printer.


NILPT
NILPT - Printing from a DOS window

NILPT is a DOS TSR utility which allows DOS-based programs or programs that can not use Windows Print Manager, use NIPrint.

NILPT is DOS TSR that can be run in three different places:

1.	From your AUTOEXEC.BAT prior to starting Windows. (recommended)

2.	From WINSTART.BAT.

3.	From a batch file as you start a DOS application from Windows.

NILPT captures the print stream from the DOS LPTx device and re-directs it to a job file in the NIPrint directory specified.  This job file is then processed by NIPrint as if Windows Print Manager had placed the job file in the specified directory.

The syntax of NILPT is:

NILPT -d=(drive:\)NI_OUT_DIR [-t=(5-99) -p=LPT(1-3) -s [-u]]

where required parameters are:

-d	= the NIPrint remote print directory

(Example: -d=C:\ni\out\epson)

and the optional parameters are:

-t	= printer timeout (5-99 sec)

-p	= LPT port (1-3)

-s 	sound

-u 	uninstall NILPT

The defaults are:

-t=5 (sec)

-p=LPT1

job complete sound signal: off (i.e. NO "-s")

Sample command line:

NILPT -d=C:\NI\OUT\UNIXP -p=LPT2 -s

This would redirect all print jobs sent to LPT2 to a job file in the C:\NI\OUT\UNIXP directory, sounding a signal when the print job capture is complete.


PROGFLAG
Program Flags

This section discusses the option flags for NIPrint.  Flags shown in brackets [] are optional.  Flags are not case sensitive.

NIPRINT.EXE  [-FILE=XX] [-PASS]

where:

-FILE=XXX

This is used to have NIPrint bypass Print Manager and print to sequential file names in a specified directory.

The "-FILE" flag has three possibilities.

-FILE	will default to a print file with a ".JOB"

extension

-FILE=	(no extension specification) will write a print

file with no extension

-FILE=XXX	will write a print file with an "XXX" (whatever

characters you specify) extension

When the "-FILE" flag is specified, you will also have to check the "Print to file" option for the printer that you would like to print to a file.  This option is in the printers "Advanced Print Options".  Once you have checked the "Print to file" option, you can then specify the print directory for the printer in the printers standard setup dialog.  The print file name will be an 8 character name that begins at 00000001, and will increment by one for each print job.  The print job name can be reset by pressing the reset button in the printers configuration dialog.

-PASS=XXX

This is used to turn on the password access option of NIPrint.

NIPrints 32-bit version allows administrators to password protect access to the NIPrint program, and most NIPrint functions.

To enable password protection functionality in NIPrint, you must specify the password flag on NIPrints command line.

Once password protection has been turned on, you may set the password by selecting " General Settings" , then " Password Protection..."  (Note: this menu choice is only available when the " -pass"  flag is specified on the command line of NIPRINT32.EXE). This will display the Edit/Change Password dialog.

You can enter an access password in this dialog, or change the existing password.  Once a password has been entered, this password will be required to access NIPrint (if the program is iconified), and to configure the program if the program is displayed.

You can remove the password access by starting NIPrint and selecting " General Settings" , then " Password Protection..." .  Once the Edit/Change Password dialog is displayed, remove all entries in the " Enter password"  and in the " Confirm password"  edit boxes.  Press " O.K." , and the password will be removed.

If you forget your password, you can remove the password in the Windows registry by starting the REGEDIT.EXE program, and follow the tree to the password entry:

HKEY_LOCAL_MACHINE

SOFTWARE

Network Instruments

NIPrint

General

Highlight the password item and press your delete key.

If the " Use common setting for all users"  option is checked off (under " General Settings" ), the " HKEY_LOCAL_MACHINE"  entry above, will be replaced with " HKEY_CURRENT_USER" .


Running NIPrint as a service under Windows NT

When installing NIPrint in the Windows NT environment, the installation program will ask if it should run NIPrint as a service.

You can also add NIPrint as service after you have installed NIPrint by double clicking on the " Install NIPrint as NT Service icon"  in the NIPrint group.

This utility allows you to install or remove NIPrint as a service in NT.

Once NIPrint is added as a service, it will start and be accessible to all NT users once they log into the NT system.  When the NT system is running, but no user is logged in, if NIPrint has been set up as service that starts automatically, it will be running in the background.

To remove access to the NIPrint program for non-administrator users, remove permission to " Allow Service to interact with desktop" .  This is done from the Services dialog (" Control Panel"  -> " Services" ), by selecting the NIPrint service and pressing the " Startup"  button.


Troubleshooting

In general, NIPrint installations proceed without any trouble, but due to the vast number of print drivers, TCP/IP implementations and operating systems that NIPrint supports, sometimes troubles arise.

NIPrint claims your TCP/IP does not support Winsock 1.1?

Contact your TCP/IP vendor and ask if th4y support the Winsock 1.1 standard.  If they answer yes, ask if there are any known incompatibilities.

Try installing NIPrint on a system using Microsofts TCP/IP (this is the Winsock standard).  If NIPrint works with Microsoft TCP/IP, the problem lies with your TCP/IP package.

Simply cant print?

Did you run the trace window?  This will often tell you exactly where the problem is, and what to do next.  Should you need to call Network Instruments support department, this is the first thing we will ask you to do.

Using LPT1 (or LPTx) as your printer name?

Don't.  LPT, LPT1, LPT2, LPT3 and LPT4 are reserved words in DOS/Windows/Windows95 and Windows NT and can not be used as a printer name.

Using NIPrint with SCO Open Server 5

Make sure that the printer DOES NOT have the ":ex:" option specified in the  /etc/printcap file. This option should only be used for SCO to SCO printing, and can cause problems if used with SCO -> standard LPD printing.

Using Novells LWP 4.2 or 5.0?

Unfortunately, at the time of this printing (10/17/95) NIPrint will not work with Novell's LAN Workplace.

The problem is with LAN Workplace.  While Novell claims Winsock compatibility, LAN Workplace is missing one very important Winsock feature - the ability to send a NUL from Winsock.  Sending a NUL is an absolute requirement for LPR, and thus you see that NIPrint can receive print jobs (acting as LPD), but can not send jobs.

Until Novell corrects this problem with their Winsock no LPD will work with it.

Can print from some applications, but not from others?

Try shortening the printer name or the path where you have NIPrint storing print jobs.  Certain older print drivers and applications have trouble with long print device names.

Using NIPrint with LPD enabled Printers (i.e. HP-JetDirect, Emulux)

The "Check print queue before transfer" option in each remote printer's "Advanced Settings" makes pre-print queue checking optional.  This provides greater compatibility with stand alone network printers with limited LPD/LPR functionality.

The default (and recommended setting) is have the check box checked on.  In other words, to enable remote queue checking prior to sending a print job.  Check this option off only if you are using a standalone network printer (printers with LPD/LPR cards installed) that can only service one TCP port at a time.

For more information on this topic see the White Paper section titled Topic: Using NIPrint with LPD based print devices.

Using an Emulux LPD enabled print server

Emulux print servers use the following printer names for the parallel port by default:

TEXT - this is used for print jobs that you want the Emulux print server to convert (i.e. LF -> CR/LF)

PASSTHRU - this is used to print jobs without conversion (recommended)

Other Printer Manufacturers LPD printer names:

Lantronix:

For the MPS devices, the name is MPS_(6 numbers)_(mode).  For example:

MPS_0D9ED3_PS   (for PostScript)

MPS_0D9ED3_PCL  (for PCL)

MPS_0D9ED3_TEXT  (for Unix text CR/LF conversion)

Note: If you are using a different Lantronix model, the "MPS" may be replaced by different characters (i.e. "EPS").

Tektronix:

PS (PostScript)

AUTO (we assume binary or text conversion)

Xerox (DocuTec):

lp

IBM 4317 (and other IBM LPD based printers):

PASS

TEXT


White Papers

The following topics are available for working with NIPrint:

Using NIPrint with LPD based print devices

Shorten spooling directory length

Printing from IBM AIX (4.x) to NIPrint

Printing to IBM AIX (4.x) form NIPrint

Printing from SCO (3.2.4.2) to NIPRint

Printing to SCO Unix (3.2.4.2) from NIPrint

Printing from SCO 5 to NIPrint

Printing to SCO 5 from NIPrint


Using LPD devices
Topic: Using NIPrint with LPD based print devices

When using NIPrint to talk to a LPD based device (as opposed to a UNIX system) there are a few tricks - this is because typically the LPD device a) can only service one socket at a time, and b) do not have any local any spooling capabilities.

Here are a few suggestions for using NIPrint with LPD based print devices::

1) Make sure to un-check the "Check print queue before transfer" (in the printers "Advanced Settings"). This makes sure that NIPrint only opens one socket when sending the print job.  When " Check print queue before transfer"  is checked on, NIPrint opens a socket to check the queue for duplicate job numbers, and then closes the socket, then opens a new socket for the print job.  If your LPD based print device can only service one socket at a time, it may not be able to reset the only socket in time for NIPrint.  Since UNIX systems can service many sockets concurrently, this is only a problem on LPD based print devices.

2) Set the remote time-out to a high number - like 3000 (under "Configuration", then "General Configuration"). Since most LPD based print devices do not have any local spooling capability, the device typically simply ignores packets while it is processing its current data buffer.  Depending on how long it takes the device to process the local data buffer, NIPrint may time out before the device lets NIPrint send more data.  Again, since UNIX systems spool the print job before sending the file to the print device, this is only an issue with LPD based print devices.


Shorten spooling directory
Topic: Shorten spooling directory length

NIPrint allows printing from Windows by first writing the final print job out to a directory.  The directory specified has a certain structure and there may be many specified, depending on how many remote printers are available to the user.  In order to make these easy to recognize, there is a portion of the path that is the name of a queue.  The following example is the full path for a network printer named " unixp" :

c:\ni\out\UNIXP\job

The " c:\ni"  portion is used by default.  If during the installation a different (longer) directory was specified by the user, the path may be even longer.

The issue is that there are applications and printer drivers that cant handle writing to a filename beyond a certain length, and will give an error when printing.  There are obvious ways to shorten this, i.e., choose a shorter printer name, but this may make the printer choices hard to tell apart. There are a couple of steps you can take that should allow you to specify a directory path that falls within the length required by your application, and still makes the printer names easy for users to choose from.  Here are two suggestions:

First, check to make sure that when you performed the installation of NIPrint, you used the default directory name of " c:\ni"  (or an alternative thats as short).

The next step is to make a change to your NIPrint configuration.  From the main NIPrint window, select " Configuration" , then " Remote Printer Configuration" .  Highlight the printer from the list and select the " Edit Entry"  button.  In the next screen select the " Advanced Print Settings"  button.  There is a fill-in box labeled " Print Directory (without path):" ,where you can specify an alternate print directory name.  This name can be as short as one character, yet will not effect the printer name as displayed to the user.


Printing from AIX to NIPrint
Topic: Printing from IBM AIX (4.x) to NIPrint

Disclaimer:  This document is intended as a general guide for those who wish to set up a solution similar to that described here.  No warranties apply and the procedures described are unsupported by Network Instruments.

AIX 4.1.4 has a powerful and easy-to-use facility to send print jobs to a remote host which supports lpd/lpr printing via TCP/IP. If you want to print from a session in your AIX host to a remote PC running NIPrint, you can do this by setting up this facility.  There are a few simple steps:

For this section, weve put the commands, menu choices, and screens in a courier font to make reading easier.

Start  smit (as root), go to  Print Spooling, and then  Add a Print Queue.

Choose  Remote  and then make your filtering choice (we chose  Local Filtering,  Other printer  and then chose a  generic printer).  This will bring up the  Add a Remote Print Queue  screen (see Attachment at the end of this white paper).

Make entries for print queue (we used the  ASCII  option),  Hostname  (the hostname or IP address of the system where the printer is),  Name of QUEUE on remote server  (the name you chose for the queue; we used  okirem  for this example), and change the Type of  print spooler  to  BSD.  Hit Enter and check for messages.

Thats all for the AIX part.  If youre using NIPrint or Winsock Companion on a PC (use the PCs IP address in the  hostname  entry above), set up NIPrint for Local Print Configuration and add a printer with the exact name that you used above.

Test it by issuing a print command from an AIX prompt like   lp -dokirem filename  and you should almost immediately get output from the local printer.  If you dont, the Local Print Trace utility in NIPrint will help or call us for technical support.

This is the simplest of situations in that weve used a generic printer on AIX, which means that were dealing with plain text.  You have the option in NIPrint to do CR/LF conversion if you require it.  If your AIX jobs are formatted and require a certain driver on AIX (Postscript, for example), you can choose that driver instead of ASCII and use a corresponding driver or a generic printer on the PC running Windows.

Attachment (AIX screen):

Add a Remote Print Queue with Local Filtering

Type or select values in entry fields.

Press Enter AFTER making all desired changes.

[TOP]                                                   [Entry Fields]

  Description                                         Generic Printer

  Names of NEW print queues to add

     ASCII                                           [okirem]

     GL Emulation                                    []

     PCL Emulation                                   []

     PostScript                                      []

  Remote server characteristics

*    HOSTNAME of remote server                       [200.100.100.12]

*    Name of QUEUE on remote server                  [okirem]

     TYPE of print spooler on remote server           BSD                 +

     Send PASS-THROUGH FLAG to queue                  yes                 +

[MORE...2]

F1=Help             F2=Refresh          F3=Cancel           F4=List

F5=Reset            F6=Command          F7=Edit             F8=Image

F9=Shell            F10=Exit            Enter=Do


Printing from NIPrint to AIX
Topic: Printing from NIPrint to AIX (4.x)

Disclaimer:  This document is intended as a general guide for those who wish to set up a solution similar to that described here.  No warranties apply and the procedures described are unsupported by Network Instruments.

AIX 4.1.4 has a facility which will accept print jobs from remote clients or hosts via lpd/lpr.  If youd like to print from a Windows PC (3.11, 95, NT) running NIPrint to an AIX host printer, this document will describe generally how to set up the AIX side.

For this section, weve put the commands, menu choices, and screens in a courier font to make reading easier.

First, set up a local printer:

Start  smit  and go to  Print Spooling, and then  Add a Print Queue.  Choose  Local  and then make your printer choice (we chose  Other  and then  Generic printer).  Then choose a device (Add a new or use an existing device).  This will bring up the screen to Add a print queue (see Attachment 1 below).

In the  Names of NEW print queues to add section, make your printer name choice by entering that name in the brackets on the  ASCII  line and hit Enter to process.  We used  pslaser  for this example in Attachment 1.

The reason for the ASCII choice (regardless of your printer type) is because typically, if youre printing from Windows, your print job will be completely formatted and you wont want to use a spooler on AIX that in any way filters or formats the print job.  For example, if you have a Postscript laser printer on your RS/6000 and youre getting ready to send Postscript jobs to your printer from Windows, those jobs will be formatted by the Windows Postscript driver and will be printer-ready.  The generic driver we chose here will simply spool and pass the print job, which is ideal for this situation.

The next step is to add the users that the printer will be available to.  Go to  Print Spooling, and then  Manage Print Server. Choose  Start the Print Server Subsystem (lpd daemon).  Then  Add Print Access for a Remote Client  (See Attachment 2 below).

Make the entry for the remote clients IP address and hit Enter to process.

The AIX setup is complete.  Set up your NIPrint remote printer(s) and test.  If you have trouble printing, check the Remote Print Trace in NIPrint or call us for technical support.

Attachment 1:

Add a Print Queue

Type or select values in entry fields.

Press Enter AFTER making all desired changes.

                                                        [Entry Fields]

  Description                                         Generic Printer

  Printer name                                        lp0

  EXISTING print queues for this printer

     None

  Names of NEW print queues to add

     ASCII                                           [pslaser]

     GL Emulation                                    []

     PCL Emulation                                   []

     PostScript                                      []

F1=Help             F2=Refresh          F3=Cancel           F4=List

F5=Reset            F6=Command          F7=Edit             F8=Image

F9=Shell            F10=Exit            Enter=Do

Attachment 2:

Add Print Access for a Remote Client

Type or select values in entry fields.

Press Enter AFTER making all desired changes.

                                                        [Entry Fields]

  Name of REMOTE CLIENT                              [200.100.100.12]

  (Hostname or dotted decimal address)


Printing to SCO from NIPrint
Topic: Printing to SCO Unix (3.2.4.2) from NIPrint

Disclaimer:  This document is intended as a general guide for UNIX system administrators who wish to set up a solution similar to that described here.  No warranties apply and the procedures described are unsupported by Network Instruments.

Setting up a printer on SCO to receive print jobs from a remote host is fairly straightforward.  It can be difficult to find " how-to"  documentation however, so heres a very basic guide.  We assume that you have the remote host (a PC running NIPrint or a Netware server running FarPRINT) configured to send print jobs.

Before you start, determine if the rlp (remote line printing) system has already been installed on your SCO system.  If in doubt, run  mkdev rlp  and choose d for delete.  Then run  mkdev rlp again and choose i for install. IT IS IMPORTANT that you do NOT install rlp twice in a row.

mkdev rlp

                 Remote printing configuration

Do you want to install or remove remote printing (i/r/q)? [q]: i

Installing Remote Line Printing

Creating directories /usr/lpd/remote and /usr/spool/lpd and file

/etc/printcap.

The file /etc/printcap already exists.

Saving lp, cancel and lpstat commands to /usr/lpd/remote

Installing remote lp, cancel and lpstat commands

Do you wish to change the printer description file /etc/printcap? (y/n) [n]

Run /etc/rlpconf to change the remote printer description file

Do you want to start remote daemon now? (y/n) y

Then to set up the specific printer(s), run

rlpconf

                        Remote Printing Configuration

Enter information for remote printers or local printers accepting

remote printing requests

Please enter the printer name (q to quit): hp4local

Is hp4local a remote printer or a local printer (r/l)? l

Please enter the the name of the device for hp4local: /dev/lp0

        Printer hp4local uses device /dev/lp0

Is this correct? (y/n)

Putting hp4local in printer description file and creating spool dir...done

Run sysadmsh.  From the main menu, choose Printers, Configure, Add:

   Printer name            [hp4local      ]

   Comment                 [                                ]

   Class name              [              ]

   Use printer interface   [Existing]  Copy   New

   Name of interface       [dumb                                    ]

   Connection              [Direct]    Call-up

     Device name           [/dev/lp0         ]

     Dial-up information

   Device                  [Hardwired]   Login

   Require banner           Yes  [No]

Use the same printer name as you did in rlpconf.  Hit Enter to process and check for error messages.

The next step is to add the hosts to the  /etc/hosts.equiv  file that have permission to print to your Unix lpd system.  Check the Attachments below for the format of the file.  An entry can be an IP address or a user name, if the user name is present in the  /etc/hosts  file or has DNS resolution available.

Then enable hp4local and accept hp4local.  Restart lpd with lpd stop and lpd start.

This is among the simplest of possible situations in that weve chosen the " dumb"  interface for the printer on the SCO system.  The reason is that typically when you print from Windows (or from Netware as in the case of using FarPRINT), the print job is already formatted and printer-ready.  What we want then is a queue on Unix that doesnt filter or format that print job further, but rather spool it to the printer untouched.

At this point, if you print from NIPrint to this queue on the Unix host, you should get output from the printer.

Troubleshooting:

If youre printing from NIPrint to this Unix queue and you dont get output, check the Remote Print Trace window in NIPrint for help in determining the problem or call us for help.

Attachments:

/etc/printcap:

# Remote Line Printer (BSD format)

hp4local:\

        :lp=/dev/lp0:sd=/usr/spool/lpd/hp4local:

lpstat -a:

hp4local accepting requests since Mon May 13 09:48:20 1996

/etc/hosts.equiv:

pc104

pc105

pc106

200.100.101.76

gn.alpha.net


Topic: Printing from SCO Unix (3.2.4.2) to NIPrint

Disclaimer:  This document is intended as a general guide for UNIX system administrators who wish to set up a solution similar to that described here.  No warranties apply and the procedures described are unsupported by Network Instruments.

Setting up a print queue in SCO to print to a remote queue is fairly straightforward.  It can be difficult to find " how-to"  documentation however, so heres a very basic guide.  We assume that you have the remote host (a PC running NIPrint or a Netware server running FarPRINT) configured to accept print jobs.

Before you start, determine if the rlp (remote line printing) system has already been installed on your SCO system.  If in doubt, run  mkdev rlp  and choose d for delete.  Then run  mkdev rlp again and choose i for install. IT IS IMPORTANT that you do NOT install rlp twice in a row.

mkdev rlp

                 Remote printing configuration

Do you want to install or remove remote printing (i/r/q)? [q]: i

Installing Remote Line Printing

Creating directories /usr/lpd/remote and /usr/spool/lpd and file

/etc/printcap.

The file /etc/printcap already exists.

Saving lp, cancel and lpstat commands to /usr/lpd/remote

Installing remote lp, cancel and lpstat commands

Do you wish to change the printer description file /etc/printcap? (y/n) [n] n

Run /etc/rlpconf to change the remote printer description file

Do you want to start remote daemon now? (y/n) y

Then to set up the specific printer(s), run

rlpconf

Remote Printing Configuration

Enter information for remote printers or local printers accepting

remote printing requests

Please enter the printer name (q to quit): laser23

Is laser23 a remote printer or a local printer (r/l)? r

Please enter the the name of the remote host that laser23 is attached to:

pc124

        Printer laser23 is connected to host pc124

Is this correct? (y/n) y

Would you like this to be the system default printer? (y/n) n

Make sure your host name appears in pc124s /etc/hosts.equiv or /etc/hosts.lpd file

Make sure that laser23 appears in pc124s /etc/printcap file (BSD format)

Make sure that laser23 has a spool directory on pc124

Putting laser23 in printer description file and creating spool dir...done

Updating LP information...done

The name of the remote host must be specified, rather than the IP address.  The three " Make sure"  messages above are part of rlpconf and arent meaningful for this situation.

Run sysadmsh.  From the main menu, choose Printers, Configure, Add:

   Printer name            [laser23       ]

   Comment                 [                                ]

   Class name              [              ]

  Use printer interface   [Existing]  Copy   New

   Name of interface       [dumb                                    ]

   Connection              [Direct]    Call-up

     Device name           [/dev/null         ]

    Dial-up information

   Device                  [Hardwired]   Login

   Require banner           Yes  [No]

Use the same printer name as you did in rlpconf.  Hit Enter to process and check for error messages.

Then enable laser23 and accept laser23.  Restart lpd with lpd stop and lpd start.

At this point, if you issue a print command like:

lp -dlaser23 /usr/jane/somefile

you should get the output of somefile on the remote printer.

Troubleshooting:

If you dont get output:

1. Make sure you have IP connectivity (i.e. successful pinging) between the two hosts.

2. Check the spool directory on SCO to see if the job exists, for example, the /usr/spool/lpd/laser23 directory.  If the job is there, but is not being sent to the remote system, focus your attention on the SCO host.

3. If you think the file is getting to the remote host but not printing, the Local Print Trace window in NIPrint.

Attachments:

/etc/printcap:

# Remote Line Printer (BSD format)

unixp:\

        :lp=/dev/lp0:sd=/usr/spool/lpd/unixp:

laser23:\

        :lp=:rm=pc124:rp=laser23:sd=/usr/spool/lpd/laser23:

lpstat -a:

unixp accepting requests since Thu Jan 12 16:42:09 1995

laser23 accepting requests since Wed Aug  9 12:51:31 1995


Printing from SCO 5 to NIPrint

Setting up SCO V to send print jobs to an NIPrint printer is fairly straightforward.  You have the option to set it up through scoadmin or using rlpconf.  Well show both ways below.  We assume that you have the PC running NIPrint configured to receive print jobs.

Setting up the queue with scoadmin:

First, run scoadmin, choose Printers, Printer Manager, Printer, Add Remote, UNIX:

Fill in the hostname or IP address of the host where the remote print queue is and the name of the queue.  This name must match the name of the queue in NIPrint.

Note:  SCO has added an extension to the rlp system which queries the remote print queue when you run lpstat.  This query expects a response from a remote SCO V system, and since the remote queue in this case isnt, youll want to remove the flag for the extension from the printcap file or lpstat will hang as it checks this new queue.

Make a backup copy of printcap, edit the file and remove the " ex:"  from the line for this new queue.  Save the file.

Setting up the queue with rlpconf:

Run rlpconf and enter the printer name (the queue name youve chosen), enter " r"  for remote, and the name or IP address of the host that the printer is attached to.  Answer " y"  for yes if its correct and then it will prompt for extended remote line printer support.  Answer " n"  for no and it will create the queue without the " ex"  flag in printcap.


Printing to SCO 5 from NIPrint

Setting up a printer on SCO V to receive print jobs from an NIPrint workstation is fairly straightforward.  It can be done through scoadmin or rlpconf.  We assume that you have the PC running NIPrint configured to send print jobs.

First, run scoadmin, choose Printers, Printer Manager, Printer, Add Local:

Fill in the name youve chosen for the print queue (this needs to match the name you chose for the NIPrint queue EXACTLY), description (optional), model (use dumb), the device your printer is using (/dev/lp0 for example)

Go to the Settings menu, down to Control, and hit space to select Accept New Remote Jobs.  The screen will prompt to configure remote printing, answer Yes.

The final step is to add the remote host (user) to the /etc/hosts.equiv file.  See the man pages for hosts.equiv for more detail.

This is among the simplest of possible situations in that weve chosen the " dumb"  interface for the printer on the SCO system.  The reason is that typically when you print from Windows (or from Netware as in the case of using FarPRINT), the print job is already formatted and printer-ready.  What we want then is a queue on Unix that doesnt filter or format that print job further, but rather spool it to the printer untouched.

At this point, if you print from NIPrint to this queue on the SCO V host, you should get output from the printer.