Introduction
Print Wizard version 3.0 introduces several new concepts for Print Wizard users, including the ability to do custom print jobs through either Print Wizard or Windows services, or direct through the Print Wizard engine. This is done through “print profiles”..
Internally, Print Wizard handles PCL translation fine, and can print PCL print jobs on non-PCL printers. This is not the case with Postscript print jobs. When Print Wizard encounters a print job with postscript language in it, we pass that job directly to the printer.
So what if the printer does not understand postscript? All is not lost.
With the use of “print profiles”, a custom job can be set up that will run through some external filter system that can convert the postscript to the specific printer language for your printer.
You can write your own custom print conversion program or use one of several available over the Internet. In our example below, we will utilize the Windows version of GhostScript to accomplish what we need.
Printing Postscript on Postscript Printers
This is pretty automatic with Print Wizard. If you just run Print Wizard as normal, and Print Wizard encounters a postscript print job, Print Wizard recognizes this and passes the print job directly to the printer.
Printing Postscript on Non-Postscript Printers with GhostScript
With GhostScript, or any other third-party print filter program, installed on your PC, you can pass print jobs from Print Wizard to this program for handling.
To run a custom program through an LPD or Despool service, the first step is to set up a Print Wizard "print profile", and then point the service to use that print profile. This is done through the Print Wizard User Interface.
Inside the User Interface, select the Tools menu “Setup profiles…” menu item and add a new profile, such as “ps2gs” (postscript to GhostScript).
Go to the Properties for that Profile and set its Target type to “Use custom program”.
Click over to the Custom Print tab and add GhostScript as the program to run whenever we use this print profile. Be sure to watch the case of the switch settings and get the command line parameters right or GhostScript will not run correctly.
In this example, we are going to print to an HP all-in-one printer that understand PCL but not postscript. So we want to convert it to a familiar device type, such as the LaserJet4 PCL. For your own use, you may need to change the “DEVICE” settings to one of the many supported by GhostScript (see their documentation and Help screen for more information).
Now whenever you reference this Print Wizard print profile with a postscript file, it should print fine on the default non-postscript printer in question:
printwiz.exe /profile=pg2gs mypostscriptfile.ps
Postscript and Services
Both Print Wizard Services and Windows Services in the Print Wizard Server Edition can take advantage of this new profile you created to print postscript files through remote sources.
To do this, you would set up your service in the User Interface under the Tools menu by selecting “Setup services…”
Despool
Add a new despool service, such as DespoolPostscript, through the user interface.
Select the service type of “Despool”. Under the Options tab, enter the directory you wish to despool from and select this new Postscript-to-Ghostscript profile, ps2gs.
Now your host or Windows application can drop a postscript file into the designated directory and it will print properly on your non-postscript printer.
Listen service
The Listen service behaves very much the same as the Despool service as described above. Add a service and point to the new print profile we set up. Whenever the listening service receives a print job, it will pass it through the postscript filter we set up utilizing GhostScript.
One caution, a “listen” service does not come in with a file extension, but rather as a temporary file. In some cases this is a problem for GhostScript and other filter programs that depend on that file extension for determining the file type. If this is a problem, you can then run the program through some type of script instead that changes the file name accordingly (see comments below on Advanced Scripting).
LPD service
LPD services are slightly different in that you print to a specific queue name for a specific service. Add a new LPD service if you do not already have one set up, selecting LPD as the service type.
Under Options add a new print queue, such as “postscript” and select that queue (make sure it is checked in order for it to be available for this service).
Go to the Properties for the queue and select the print profile to use (select the “pg2ps” profile we added above). Make sure it is checked.
Now whenever a host system prints a postscript file, direct that print job to the “Postscript” queue (printer) and it will be ran through GhostScript prior to printing on your local printer.
Advanced Scripting
There are times when the simple setups described above are not sufficient. Two good examples of this are when a) the service may receive multiple file types, sometimes postscript, sometimes not, and b) when your filter program, such as GhostScript, requires a specific file name extension or files copied to specific locations, or you need to run through a couple of different filters.
In place of the print profile string for GhostScript, you could add your own script line that would pass the received file off to your script and let you manipulate it as you need.
As an example, your script may receive the file name, change its extension, look at the first 100 characters or so and determine from these characters whether to print it back through Print Wizard or print it through GhostScript. It could also look at this print job and determine whether to fax it, email it, create a PDF, etc. At this point options become unlimited with a little imagination.