Wine PostScript Driver
======================

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
------------

At the moment the driver will only work for 16 bit apps, the move to 32 bit
should be quite easy, I'd just like to improve it first. The driver behaves as
if it were a DRV file called WINEPS.DRV . To install it as the default printer
driver add

device=Wine PostScript Driver,WINEPS,LPT1:

to the [windows] section of win.ini and

Wine PostScript Driver=WINEPS,LPT1:

to the [devices] section of win.ini .

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
present 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=/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 with some
degree of success - you should be able to get something out, it may not be in
the right place.

TODO / Bugs
-----------

Driver does read PPD files, but ignores all constraints and doesn't let you
specify whether you have optional extras such as envelope feeders. You will
therefore find a larger than normal selection of input bins in the print setup
dialog box. I've only really tested ppd parsing on the hp4m6_v1.ppd file.

No TrueType download.

StretchDIBits uses level 2 PostScript.

AdvancedSetup dialog box.

Many partially implemented functions.

ps.c is becoming messy.

Notepad often starts text too far to the left depending on the margin
settings. However the win3.1 pscript.drv (under wine) also does this.

Probably many more...

Since the driver is very alpha, things are likely to change quickly.
Please contact me if you want to help so that we can avoid duplication.

Huw Davies <h.davies1@physics.ox.ac.uk>
