Printing in Wine
================

Printing in Wine can be done in one of two ways. Both of which are very alpha.

1. Use a windows 3.1 printer driver.

2. Use the builtin Wine Postscript driver (+ ghostscript to produce output for
   non-postscript printers).


Note that at the moment WinPrinters (cheap, dumb printers that require the host
computer to explicitly control the head) will not work. It is unclear whether
they ever will.


1. External printer drivers
---------------------------
At present only 16 bit drivers will work (note that these include win9x
drivers).

Add

printer=on

to the [wine] section of wine.conf (or ~/.winerc). This lets CreateDC proceed
if its driver argument is a 16 bit driver.

You will probably also need to add

TTEnable=0
TTOnly=0

to the [TrueType] section of win.ini .

The code for the driver interface is in graphics/win16drv .


2. Builtin Wine PostScript driver
---------------------------------
Enables printing of PostScript files via a driver built into Wine. See
documentation/psdriver for installation instructions. The code for the
PostScript driver is in graphics/psdrv .



Spooling
========
Spooling is rather primitive. The [spooler] section of wine.conf maps a port
(e.g. LPT1:) to a file or a command via a pipe. For example the following lines

LPT1:=foo.ps
LPT2:=|lpr

map LPT1: to file foo.ps and LPT2: to the lpr command. If a job is sent to an
unlisted port then a file is created with that port's name e.g. for LPT3: a
file called LPT3: would be created.
