The folllowing is my observations from updating the postscript drivers on eCS.
The first step is to get the tools and environment setup. I will first discuss manual process and then talk of Alex Taylor's gui interface that uses the command line tools.
First we need to create a directory well call it pscriptdrvr here. Then we need to unpack the pscript driver package (any relatively recent pscript dirver package will have the tools for the conversion). There should be the following files: README - INSTALLATION INSTRUCTIONS PSCRIPT.DRV - PSCRIPT DRIVER PSCRIPT.EA - PSCRIPT DRIVER EAs. PSCRIPT.SYM - PSCRIPT DRIVER SYMBOL FILE (FOR DEBUGGING ONLY) PSCRIPT.HLP - PSCRIPT DRIVER HELP FILE PSCRIPT.LST - LIST OF ALL DEVICES SUPPORTED PRINTER1.PAK - PSCRIPT DRIVER DEVICE DATA PIN.EXE - POSTSCRIPT RESOURCE IMPORTING UTILITY PIN.SYM - SYMBOL FILE (FOR DEBUGGING ONLY) FOR PIN.EXE PPDENC.EXE - PPD FILE ENCODING CONVERTER UTILITY PPDENC.SYM - SYMBOL FILE (FOR DEBUGGING ONLY) FOR PPDENC.EXE
Note: Exception for JP and TW drivers instead of PSCRIPT.DRV use PSCRIPT2.DRV instead of PSCRIPT.EA use PSCRIPT2.EA If you are using these then you will need to make the substitution to the text below.
The tools for the actual conversion itself are ppdenc.exe and pin.exe.
Next we want to create three folders... pre-ppd, post-ppd, and driver.
Now we want to obtain the ppd files for the printer. These may be on a cd that came with the printer, download a self executing zip (Lexmark and Xerox Phaser I know have these - I generally use Odin for these), or you may have to install from either the cd or a download onto a windows machine and then find the ppd file (I would start by looking in system32\spool).
Once the ppd files are located put them in pre-ppd. Technically they can be pulled directly from the cd for instance during this process but it is easier for this case usage to copy them over (besides I myself prefer keeping them where I know where they are).
Note: Gary Drag reported in the eComStation mailing list that he had to add the following to the ppd file to fix problems with RAW postscript output: *% === Job Control Language ==
*JCLBegin: "<1B>%-12345X@PJL JOB<0A>" *JCLToPSInterpreter: "@PJL ENTER LANGUAGE = Postscript <0A>" *JCLEnd: "<1B>%-12345X@PJL EOJ <0A><1B>%-12345X"
These lines solve the problem with applications that generate RAW postscript output.
Now we need to convert the encoding for OS/2 usage. The readme says this is only needed for non-english ppd files. Currently supported PPD encoding standards are "IsoLatin1" and "WindowsANSI". PPDENC will automatically detect encoding in PPD from which to convert. Run ppdenc from the command line for the parameters. For our purposes: ppdenc -d pre-ppd post-ppd This will set *LanguageEncoding? to "OS2-850". Note: If *LanguageEncoding? is already set to "OS2-850" then it will not convert the file and only copy it to post-ppd.
Note: I have seen one instance where a ctrl-z character got inserted after the LanguageEncoding?: OS2-850 line and had to be removed... I could not determine why it was inserted as the other ppd files I converted did not have this problem and in that section are nearly identical except the name of the printer itself.
Now we need to copy pscript.* and printer1.pak to the driver directry we created earlier (for the actual conversion only pscript.drv is required but makes the next steps easier to copy them all).
We are now ready to actually update the postscript driver. Run pin at the command line for parameters and usage. For our purposes: pin ppd post-ppd driver\pscript.drv
IMPORTANT: After the resources are imported to the printer driver, you can't just 'add' on top of that. If you add a new PPD to the directory and want to make use of it, you have to start with a "fresh" driver and import all of the devices at once, as previously done. It is required that you copy the pscript.drv from pscriptdrv into driver again.
Note: If you have to remove the ctrl-z or similarly had to edit the ppdenc converted file then you may want to remove the one from pre-ppd. This is important due to the preceding in case you have to convert a new printer. You can remove them all as well, though I like to keep them for the date so that I can see if a newer one is released.
Now you need to install your printer as you normally would and tell it to find the drivers in the pscriptdrv\driver directory. If it asks to replace files tell it yes. Now open the properties to the printer and go to the Printer driver tab. The new printer should show in the Default printer driver. Click on job properties. If the properties dialog comes up then you should be golden and be able to print. If nothing seems to happen and no dialog comes up then it probably did not copy over the necessary files. Manually copy pscriptdrv\driver\pscript.drv and pscriptdrv\driver\auxprint.pak (and if you happen to be using a newer pscript package than what you previously had installed pscriptdrv\driver\printer1.pak) to C:\OS2\DLL\PSCRIPT (where C is of course replaced by your boot drive letter). You may find that pscript.drv is locked, in which case you may be able to close any apps that have it locked (Citrix I know does, ae.exe might) or you can unlock it, replace it, and reboot (or just reboot may work or you may boot to command prompt). You should now be able to access the job properties and print.
Ok, now that the mechanics of what is going on is handled I will talk about the gui that Alex Taylor has created (instpdr.exe). It uses the ppdenc and pin for you. It also keeps track internally and saves ppd files that you have converted so that if you do so again you don't have to worry about that yourself. It also adds the printer to the eComStation list of printers so that you don't have to locate them.
Its setup is like the above, unpack the postscript drivers into pscriptdrv and put instpdr.exe into this same directory. You can either create a directory to hold ppd files as we did for the manual installation or use the gui to go out to a cd, with the gui either is about as easy as the other. The gui guides you through the process so I will not go further from there, internally it is taking care of what is documented above.