The Wine PostScript Driver

written by Huw Davies

(Extracted from wine/documentation/psdriver)

When complete this will allow Wine to generate PostScript files without needing an external printer driver. It should be possible to print to a non PostScript printer by filtering the output through ghostscript.

Installation

The driver behaves as if it were a DRV file called wineps.drv which at the moment is built into Wine. Although it mimics a 16 bit driver it will work with both 16 and 32 bit apps, just as win9x drivers do.

To install it add

Wine PostScript Driver=WINEPS,LPT1:
        

to the [devices] section of win.ini and to set it as the default printer also add

device=Wine PostScript Driver,WINEPS,LPT1:
        

to the [windows] section of win.ini and ??? [sic]

To run 32 bit apps (and 16 bit apps using the builtin commdlg) you also need to add certain entries to the registry. The easiest way to do that at the moment is to use the winelib program programs/regapi/regapi with the file documentation/psdrv.reg. To do this cd to programs/regapi/regapi and type make to actually make the program, then type ./regapi setValue <../../documentation/psdrv.reg. You can obviously edit psdrv.reg to suit your requirements.

You will need Adobe Font Metric (AFM) files for the (type 1 PostScript) fonts that you wish to use. You can get these from ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles . The directories base17 or base35 are good places to start. Note that these are only the font metrics and not the fonts themselves. At the moment the driver does not download additional fonts, so you can only use fonts that are already present on the printer.

Then create a [afmfiles] section in your wine.conf (or ~/.winerc) and add a line of the form

file<n>=/unix/path/name/filename.afm
        

for each AFM file that you wish to use. [This might change in the future]

You also require a PPD file for your printer. This describes certain characteristics of the printer such as which fonts are installed, how to select manual feed etc. Adobe also has many of these on its website, have a look in ftp://ftp.adobe.com/pub/adobe/printerdrivers/win/all/. Create a [psdrv] section in your wine.conf (or ~/.winerc) and add the following entry:

ppdfile=/somewhere/file.ppd
        

By default, the driver will look for a file named default.ppd in the directory from which you started wine.

To enable colour printing you need to have the *ColorDevice entry in the PPD set to true, otherwise the driver will generate greyscale.

Note that you need not set printer=on in the [wine] section of wine.conf, this enables printing via external printer drivers and does not affect wineps.

If you're lucky you should now be able to produce PS files from Wine!

I've tested it with win3.1 notepad/write, Winword6 and Origin4.0 and 32 bit apps such as win98 wordpad, Winword97, Powerpoint2000 with some degree of success - you should be able to get something out, it may not be in the right place.

TODO / Bugs

Please contact me if you want to help so that we can avoid duplication.

Huw Davies