Please enable JavaScript to view this site.

TIFF Image Printer

In order to understand how the PNSrv12 COM interface works, an understanding of printers and the Windows printing subsystem can be useful.

Windows Printing

The main component of the Windows printing subsystem is the print spooler. It manages all communication between the printing application and the desired printer. Each printer has its own print queue, and each time a document is printed, a print job, or a series of print jobs, is added to that printer's print queue. Most of the time there is only a single print job in the queue for each document printed, but some applications will send more than one job.

When a print job is submitted, it goes through several states. The first state is spooling, meaning the printing application is still sending the document to the printer. Once finished spooling, it switches to spooled. At this point the print job is ready to be printed and will enter the printing state. If there is more than one job spooled in the print queue, a single print job may stay in the spooled state until the printer is finished with job currently being printed. When all pages are printed, the state of the print job is set to printed. After a print job is printed, it is then deleted from the print queue by first entering the deleting state, and then finally going to the deleted state. At this point, the print job is removed from print queue and, if there are more than one job in the queue, the printer begins processing the next job.

Terminology

This guide uses terminology common to Windows applications, as well as some terms specific to the PNSrv12 COM interface. The following terms are used throughout the guide:

asynchronous

An asynchronous operation executes in a thread separate from the main application thread. This leaves the main application window free to continue executing while the second thread performs its time-consuming task. Programming with events and event handlers is asynchronous. See also synchronous.

factory defaults

The default conversion profile installed for the printer properties when the printer was installed contains the factory defaults for the printer settings.

integer

A 32-bit signed value.

JobID

A JobID is a non-unique number associated with every print job submitted to a print queue. It is initially set to zero when the printer is created and is automatically incremented by the printer at the start of every print job submitted to that printer, up to a max of 4294967295. (UINT32 max value). Each printer has its own JobID counter. This is not the same as the unique ID used with the new file name creator option in a conversion profile.

job tracking

When enabled, the Jobs collection in the IPNSession object is maintained with a new object added for every job printed through any printer in the session's pool. Job tracking is enabled through the IPNSession TrackingOn property. The feature is off by default.

object

An instance of any COM interface class, such as IPNSession, or IPNJob.

printer

An installed PEERNET printer, such as TIFF Image Printer.

printing application

The application being used to print a document, usually the same application used to open the document.

print job

A print job is a file that has been sent to a printer to be printed. Most often there is a single print job for each file (or document) printed, but occasionally printing a single file will create multiple print jobs in a print queue.

printer pool

A group of printers that is created and used by the PNSrv12 COM interface. A printer pool has a minimum of one printer, and can have as many printers in the pool as needed.

print queue

Each printer has its own printer queue. A print queue shows which documents (or print jobs) are being printed or are waiting to be printed.

print spooler

The print spooler is part of the Windows printing subsystem. It manages communication between the printing application and the printers on your computer.

session object

An instance of the IPNSession COM interface object.

synchronous

Synchronous programming occurs in the same thread in a linear manner. When making a call that blocks until it returns. program execution is halted until the call returns.