[[[ PicLan ]]]

PicLan Network Printing Functions

April 21, 1996

(C) Copyright 1992-1996 Modular Software Corporation. All rights reserved.

For more information about PicLan contact: sales@modsoft.com

PicLan printing function have been expanded with the release of PicLan version 1.9.1.6. Versions of PicLan prior to this release do not support all of the functions described here. In addition, in order to use many of these functions, you must be using PicLan version 1.9.1.6 on both the host and client systems.

General Printing Concepts

PicLan network printing involves a number of general printing concepts. These concepts are valid for all types of Piclan printing, but because of limitations within other environments, some of the concepts may not work for all environments.

Inbound Print Jobs

When a print job is destined for a Pick systems, it is received over the network by the PicLan SERVER-PROCESS. The SERVER-PROCESS is a PicLan program that runs on an unused port on each Pick system. Configuring PicLan to start a SERVER-PROCESS is optional, but if you intend on using PicLan network printing functions, you must have a SERVER-PROCESS running.

When the PicLan SERVER-PROCESS receives a network print job, it will re-spool the job into the normal Pick spooler. The job will be re-spooled with the correct H and/or S options and with the correct copy count. Information about who generated the job will be lost in that the Pick spooler does not include a job description field.

Outbound Print jobs

When a print job is destined to move from a Pick system, it is transmitted over the network by the PicLan SERVER-PROCESS. Again, you must have a SERVER-PROCESS running in order to process network print jobs.

The PicLan SERVER-PROCESS will periodically scan the Pick spooler looking for jobs in form queues setup with the PL-ASSIGN statement. The PL-ASSIGN statement can setup print queues to operate in one of two network "modes". These modes are normal and move.

In normal mode, the PicLan SERVER-PROCESS behaves much like a Pick system printer. A job will only be transferred to it's network destination when the job is closed and ready to be printed. If the job is spooled with HS options, the job will sit in the Pick spooler until released by a user. If the job has just an H option, then it will be transmitted across the network immediately, and the job will be retained in the Pick spooler as a printed hold job. If the job has no options, it will be transmitted across the network and then deleted. In any case, the job that is transmitted across the network is sent without any option letters.

In move mode, the PicLan SERVER-PROCESS does not behave like a Pick system printer. Instead of printing jobs, the SERVER-PROCESS moves jobs with options intact to a destination system. This means that a job spooled with HS options will be transmitted to it's destination with the HS option intact and then deleted from the source system. This network printing behavious is intended for destinations that understand hold jobs. A network destination that is another Pick host or a NetWare print queue are examples of destinations that know how to process hold jobs. Slave printers and Windows print queues are examples of destinations that do not understand hold jobs.

In addition to operating mode, the SERVER-PROCESS will interpret four different options which can be used singly or in combination:

These options are available to make it easier to co-exist with shared network printers that may not use the same leading form-feed idiom that Pick systems tend to use.

Network Printing Paths

PicLan supports a number of printing options for use over network connections. In general, the following printing paths are available:

Each of these printing methodologies involves differing network setups. Each setup is described independently.

Pick to Pick Printing

This type of printing is one of the easiest to implement. Because both the source and destination are Pick print spoolers, the greatest compatibility with print jobs and Pick spooler operations are maintained.

In order to use Pick to Pick Printing, you network must be configured with:

With Pick to Pick printing, you can elect to use either normal or move mode. In normal mode, hold jobs will stay on the host system's spooler. In move mode, hold jobs will move to the destination system's spooler.

Pick to DOS Services Gateway Printing

This type of printing requires a PicLan DOS Services Gateway. Depending on the types of printer paths involved, you may elect to use either the DOS-hosted or Windows-hosted PicLan DOS Services Gateway programs. The following chart lists the possible DSG print destinations and which DSG implementations support them:

                                       DOS   Win31   WFW   Win95  WinNT

NetWare Print Queue (direct)           yes    yes    YES    YES    YES
NetWare Print Queue (via network path)  no     no     NO     NO    YES
DSG LPT hardware device                yes     NO     NO     NO     NO
DSG COM hardware device                yes     NO     NO     NO     NO
DOS network path                       yes    ???    ???    ???    ???
DOS Shelled Command                    yes     NO     NO     NO     NO
Windows LPT attached queue              no    yes    YES     NO     NO
Windows COM attached queue              no    yes    YES     NO     NO
Windows local path                      no     no     NO     NO    YES
Windows network path                    no     no    YES    YES    YES

Descriptions in all capital letters were tested on in-house systems at Modular Software. The test client systems included:

Here are the descriptions of each type of DSG destination:

NetWare Print Queue (direct)

PicLan can print directly into NetWare print queues using NetWare supplied DOS or 16-bit Windows APIs. This interface supports copy count and HS option support along with inclusion of Pick generating port numbers and accounts in the job's description fields. This type of printing is specified by using the following format of the PL-ASSIGN command:

PL-ASSIGN #=dsgname!NWServerName/NWQueueName:0{:options}{!SpoolOptions)

options are:

Both options may be specified together as FB.

SpoolOptions are:

Mulitple SpoolOptions may be specified seperated by spaces. These spool options are availble with any PL-ASSIGN routing.

NetWare Print Queue (via network path)

You may specify NetWare print queues on some platforms by specifying the PL-ASSIGN command:

PL-ASSIGN #=dsgname!//NWServerName/NWQueueName{!SpoolOptions}

This type of printer redirection does not support the passing of H or S options. Copy count is implemented by sending the job multiple times in sequence to the print queue.

DSG LPT Hardware Device

The DOS versions of the PicLan DSG will allow spooling to local LPT devices. This support is implemented as a low-level interface to the system BIOS printer interfaces and as such is not intended for use with subsequent printer re-direction. The PL-ASSIGN syntax for this printer redirection is:

PL-ASSIGN #=dsgname!LPT#:{!SpoolOptions}

This type of printer redirection does not support the passing of H or S options. Copy count is supported by sending the job to the destination device multiple times.

DSG COM Hardware Device

The DOS versions of the PicLan DSG will allow spooling to local COM devices. This support is implemented as low-level interrupt driven device drivers that directly access the COM port's UART hardware. The PL-ASSIGN syntax for this printer redirection is:

PL-ASSIGN #=dsgname!COM#:{!SpoolOptions}

This type of printer redirection does not support the passing of H or S options. Copy count is supported by sending the job to the destination device multiple times.

The communications parameters for each COM device is specified in the PL-CFG.INI file. The first (and thus default) values for baud rate, parity, etc. are used to initialize the COM port for printing purposes.

DOS Network Path

The DOS and Windows versions of the DSG will allow spooling to network path destinations in the form //server/queue by making standard DOS file open and write calls. If you underlying network supports this type of calling convention, the PicLan DSG may be able to print to it. The PL-ASSIGN syntax for this printer redirection is:

PL-ASSIGN #=dsgname!//Server/Queue{!SpoolOptions}

This type of printer redirection does not support the passing of H or S options. Copy count is supported by sending the job to the destination device multiple times.

DOS Shelled Command

The DOS version of the PicLan DSG will support shelling DOS commands when inbound print jobs are received. This support is implemented as general support for other types of network print queue functions for which no other method of redirecting printing can be accomplished. Because of the nature of this command, operational limitations exist including:

The PL-ASSIGN syntax for this printer redirection is:

PL-ASSIGN #=dsgname!EXEC command string{!SpoolOptions}

The command string can include the following special character sequences:

The DOS Shelled Command does support the H or S spooler options nor the copy count options.

Windows LPT Attached Queue

The Windows version of the PicLan DSG will support printing to Windows LPT devices using the Windows API SpoolFile(...) function. This allows a Pick process to print to any locally attached printer with an LPT device "connected" to it. Unfortunately, the SpoolFile(...) function does not appear to work under either Windows 95 or Windows NT.

The PL-ASSIGN syntax for this is:

PL-ASSIGN #=dsgname!LPT#:{!SpoolOptions}

This type of printer redirection does not support the passing of the H and S options. Copy count is supported by sending the job to the destination device multiple times within a single print job.

Windows COM Attached Queue

The Windows version of the PicLan DSG will support printing to Windows COM devices using the Windows API SpoolFile(...) function. This allows a Pick process to print to any locally attached printer with an LPT device "connected" to it. The PL-ASSIGN syntax for this printer redirection is:

PL-ASSIGN #=dsgname!COM#:{!SpoolOptions}

This type of printer redirection does not support the passing of the H and S options. Copy count is supported by sending the job to the destination device multiple times within a single print job.

Windows Local Path

The Windows version of the PicLan DSG will support printing to local shared printers by specifying the network path name. This function does not work with Windows for Workgroups or with Windows 95 because of limitations within these version of Windows. The PL-ASSIGN syntax for this printer redirection is:

PL-ASSIGN #=dsgname!//LocalServer/Queue{!SpoolOptions}

This type of printer redirection does not support the passing of the H and S options. Copy count is supported by sending the job to the destination device multiple times within a single print job.

Windows Network Path

The Windows version of the PicLan DSG will support printing to network shared printers by specifying the network path name. This function (unlike local printers) does work with Windows for Workgroups. The PL-ASSIGN syntax for this printer redirection is:

PL-ASSIGN #=dsgname!//Server/Queue{!SpoolOptions}

This type of printer redirection does not support the passing of the H and S options. Copy count is supported by sending the job to the destination device multiple times within a single print job.

DOS Services Gateway to Pick Printing

The DOS version of the DSG as well as the Windows version of the DSG running under Windows 3.1 and Windows for Workgroups 3.1x support servicing NetWare print queues and sending them to the Pick spooler. This type of printing is configured in the PL-CFG.INI file by specifying:

[DosServicesGateway]
PrintQueue=queue1 queue2 ...
Queue1In=Server\Queue:form
Queue1Out=PickHost!QueueNumber
...

This type of printing does support the HS options (user Hold in NetWare terms) as well as copy counts.

Pick to PL-DEV TSR Printing

The PL-DEV DOS TSR (Terminate and Stay Resident program) can redirect LPT devices from DOS to Pick spooler form queues. The SYNTAX to setup this printing is:

PL-DEV
PL-PRN LPT#:=PickHost!QueueNumber {/CopyCount} {/h} {/s} {/t##} {/u} {/i} {/n} {/f} {/?}

The options are:

This TSR is desinged to be used from DOS only. It's use from within Windows 3.1 or Windows for Workgroups is unpredictable at best. It's use within Windows 95 is impossible in many driver configurations. It's use with Windows NT is not possible in any configuration.

PL-DEV TSR to Pick Printing

The PL-DEV DOS TSR (Terminal and Stay Resident program) can receive print jobs from a Pick host and print them on a local LPT device. The syntax to load and activate PL-DEV for this function is:

PL-DEV
PL-SPRN LPT#:=PRIMARY {/p##} {/t##} {/u} {/i} {/?}

or

PL-DEV
PL-SPRN LPT#:=SECONDARY {/p##} {/t##} {/u} {/i} {/?}

The options are:

This TSR is designed to print to true LPT local devices only. COM devices assigned to LPT devices will either perform very slowly or not work at all. Other software layers that capture LPT devices are probably not compatible with the PL-DEV TSR are usually do not run reliablly.

In order to print to the PL-DEV TSR, you execute a PL-ASSIGN command on the Pick host. There are two different styles of printing that can use the PL-DEV TSR as the receiving end of print jobs.

PicLan SLAVE Printing

With slave printing, the print job is sent to the network address of the workstation that generated the print job. This type of printing is easy to setup and requires little configuration on the Pick host. It is also a bit unusual because a print jobs spooled to a particular form queue may print on different printers depending on what port created the print job.

The syntax of the PL-ASSIGN command for this type of printing is:

PL-ASSIGN #=SLAVE:0{!SpoolOptions}
PL-ASSIGN #=SLAVE:1{!SpoolOptions}

The O or 1 specify the PRIMARY or SECONDARY printer on each workstation. A single workstation can have at most two printers controlled in this manner.

PicLan ROUTED Printing

With routed printing, the print job is sent to a particular network address. Because the PL-DEV TSR does not advertise as a network server, you must specify the actual network address as a part of the PL-ASSIGN command. You can also execute the PL-ASSIGN command from the workstation where PL-DEV is loaded and specify HERE to same some complicated typeing.

The syntax of the PL-ASSIGN command for this type of printing is:

PL-ASSIGN #=PL-RPRN!ImmAddress:NetNumber:NodeAddress:PrinterNumber{!SpoolOptions}

or

PL-ASSIGN #=PL-RPRN!HERE:PrinterNumber{!SpoolOptions}

The fields in the addresses are:

Future DSG Printing Functions

Because of the limitations of 16-bit Windows applications running under Windows 95 and Windows NT, a 32-bit version of the PicLan DOS Services Gateway for Windows is being developed. This should hopefully further extend printing functions on Windows 95 and Windows NT platforms.