Commit 621be200 authored by Marcus Meissner's avatar Marcus Meissner Committed by Alexandre Julliard

Changed the printing documentation to include CUPS and LPR support,

also give some hints on AFM files in system and generic.ppd.
parent 00d70684
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
</para> </para>
<para> <para>
Printing in Wine can be done in one of two ways. Both of which are pretty alpha. Printing in Wine can be done in one of two ways:
</para> </para>
<orderedlist> <orderedlist>
<listitem> <listitem>
...@@ -36,8 +36,8 @@ ...@@ -36,8 +36,8 @@
<sect3> <sect3>
<title>External printer drivers</title> <title>External printer drivers</title>
<para> <para>
At present only 16 bit drivers will work (note that these include win9x At present only 16 bit drivers will work (note that these include
drivers). To use them, add win9x drivers). To use them, add
</para> </para>
<screen> <screen>
printer=on printer=on
...@@ -62,8 +62,15 @@ printer=on ...@@ -62,8 +62,15 @@ printer=on
<para> <para>
Enables printing of PostScript files via a driver built into Wine. See Enables printing of PostScript files via a driver built into Wine. See
below for installation instructions. The code for the PostScript below for installation instructions. The code for the PostScript
driver is in <filename>graphics/psdrv</filename>. driver is in <filename>dlls/wineps/</filename>.
</para> </para>
<para>
The driver behaves as if it were a DRV file called
<filename>wineps.drv</filename> 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.
</para>
</sect3> </sect3>
<sect3> <sect3>
...@@ -84,6 +91,12 @@ printer=on ...@@ -84,6 +91,12 @@ printer=on
with that port's name e.g. for <systemitem>LPT3:</systemitem> a file with that port's name e.g. for <systemitem>LPT3:</systemitem> a file
called <systemitem>LPT3:</systemitem> would be created. called <systemitem>LPT3:</systemitem> would be created.
</para> </para>
<para>
There are now also virtual spool queues called
<systemitem>LPR:printername</systemitem>, which send the data
to <command>lpr -Pprintername</command>. You do not need to
specify those in the config file, they are handled automatically by
<filename>dlls/gdi/printdrv.c</filename>.
</sect3> </sect3>
</sect2> </sect2>
...@@ -98,132 +111,182 @@ printer=on ...@@ -98,132 +111,182 @@ printer=on
</para> </para>
<para> <para>
When complete this will allow Wine to generate PostScript files without This allows Wine to generate PostScript files without
needing an external printer driver. It should be possible to print to a needing an external printer driver. Wine in this case uses the
non PostScript printer by filtering the output through ghostscript. system provided postscript printer filters, which almost all use
ghostscript if necessary. Those should be configured during the
original system installation or by your system administrator.
</para> </para>
<sect3> <sect3>
<title>Installation</title> <title>Installation</title>
<para> <sect4>
The driver behaves as if it were a DRV file called <title>Installation of CUPS printers</title>
<filename>wineps.drv</filename> which at the moment is built into Wine. <para>
Although it mimics a 16 bit driver it will work with both 16 and 32 bit If you are using CUPS you do not need to configure .ini or
apps, just as win9x drivers do. registry entries, everything is autodetected.
</para> </para>
<para> </sect4>
To install it add <sect4>
</para> <title>Installation of LPR /etc/printcap based printers</title>
<screen> <para>
"Wine PostScript Driver" = "WINEPS,LPT1:" If your system is not yet using CUPS, it probably uses LPRng
</screen> or a LPR based system with configuration based on /etc/printcap.
<para> </para>
to the [devices] section and <para>
</para> If it does, your printers in <filename>/etc/printcap</filename>
<screen> are scanned with a heuristic whether they are PostScript capable
"Wine PostScript Driver" = "WINEPS,LPT1:,15,45" printers and also configured mostly automatic.
</screen> </para>
<para> <para>
to the [PrinterPorts] section of <filename>win.ini</filename> and to set it Since WINE cannot find out what type of printer this is, you
as the default printer also add need to specify a PPD file in the [ppd] section of
</para> <filename>~/.wine/config</filename>. Either use the shortcut
<screen> name and make the entry look:
"device" = "Wine PostScript Driver,WINEPS,LPT1:" </para>
</screen> <screen>
<para> [ppd]
to the [windows] section of <filename>~/.wine/config</filename> and ??? "ps1" = "/usr/lib/wine/ps1.ppd"
<emphasis>[sic]</emphasis> </screen>
</para> <para>
<para> Or you can specify a generic PPD file matching for all of the rest
You also need to add certain entries to the registry. The easiest way printers. A generic PPD file can be found in
to do this is to customise the contents of <filename>documenation/samples/generic.ppd</filename>.
<filename>documentation/psdrv.reg</filename> (see below) and use the </para>
Winelib program <command>programs/regapi/regapi</command>. For </sect4>
example, if you have installed the Wine source tree in <sect4>
<filename>/usr/src/wine</filename>, you could use the following <title>Installation of other printers</title>
series of commands: <para>
<itemizedlist> You do not need to this, if the above 2 sections apply, only if
<listitem> you have a special printer.
<para> </para>
<userinput>cp /usr/src/wine/documentation/psdrv.reg ~</userinput> <screen>
</para> "Wine PostScript Driver" = "WINEPS,LPT1:"
</listitem> </screen>
<listitem> <para>
<para><userinput>vi ~/psdrv.reg</userinput></para> to the [devices] section and
</listitem> </para>
<listitem> <screen>
<para> "Wine PostScript Driver" = "WINEPS,LPT1:,15,45"
Edit the copy of <filename>psdrv.reg</filename> to suit your </screen>
requirements. At a minimum, you must specify a PPD file for <para>
each printer. to the [PrinterPorts] section of <filename>win.ini</filename> and to set it
</para> as the default printer also add
</listitem> </para>
<listitem> <screen>
<para> "device" = "Wine PostScript Driver,WINEPS,LPT1:"
<userinput>regapi setValue &lt; ~/psdrv.reg</userinput> </screen>
</para> <para>
</listitem> to the [windows] section of <filename>~/.wine/config</filename> and ???
</itemizedlist> <emphasis>[sic]</emphasis>
</para> </para>
<para> <para>
You will need Adobe Font Metric (AFM) files for the (type 1 PostScript) You also need to add certain entries to the registry. The easiest way
fonts that you wish to use. You can get these from to do this is to customise the contents of
<ulink url="ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles"> <filename>documentation/psdrv.reg</filename> (see below) and use the
ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles </ulink>. The Winelib program <command>programs/regapi/regapi</command>. For
directories <filename>base17</filename> or <filename>base35</filename> example, if you have installed the Wine source tree in
are good places to start. Note that these are only the font metrics and <filename>/usr/src/wine</filename>, you could use the following
not the fonts themselves. At the moment the driver does not download series of commands:
additional fonts, so you can only use fonts that are already present on <itemizedlist>
the printer. (Actually, the driver can use any font that is listed in <listitem>
the PPD file, for which it has an AFM file. If you use fonts that are <para>
<emphasis>not</emphasis> installed in your printer, or in <userinput>cp /usr/src/wine/documentation/psdrv.reg ~</userinput>
Ghostscript, you will need to use some means of embedding the font in </para>
the print job or downloading the font to the printer. Note also that </listitem>
the driver does not yet properly list required fonts in its DSC <listitem>
comments, so a print manager that depends on these comments to <para><userinput>vi ~/psdrv.reg</userinput></para>
download the proper fonts to the printer may not work properly.) </listitem>
</para> <listitem>
<para> <para>
Then create a [afmdirs] section in your Edit the copy of <filename>psdrv.reg</filename> to suit your
<filename>wine.conf</filename> (or requirements. At a minimum, you must specify a PPD file for
<filename>~/.wine/config</filename>) and add a line of the form each printer.
</para> </para>
<screen> </listitem>
"dir&lt;n&gt;" = "/unix/path/name/" <listitem>
</screen> <para>
<para> <userinput>regapi setValue &lt; ~/psdrv.reg</userinput>
for each directory that contains AFM files you wish to use. </para>
</para> </listitem>
<para> </itemizedlist>
You also require a PPD file for your printer. This describes certain </para>
characteristics of the printer such as which fonts are installed, how </sect4>
to select manual feed etc. Adobe also has many of these on its website, <sect4>
have a look in <ulink url="ftp://ftp.adobe.com/pub/adobe/printerdrivers/win/all/"> <title>Required Configuration for all printertypes</title>
ftp://ftp.adobe.com/pub/adobe/printerdrivers/win/all/</ulink>. See <para>
above for information on configuring the driver to use this file. You will need Adobe Font Metric (AFM) files for the (type 1 PostScript)
</para> fonts that you wish to use. You can get these from
<para> <ulink url="ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles">
To enable colour printing you need to have the ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles </ulink>. The
<literal>*ColorDevice</literal> entry in the PPD set to directories <filename>base17</filename> or <filename>base35</filename>
<literal>true</literal>, otherwise the driver will generate are good places to start. Note that these are only the font metrics and
greyscale. not the fonts themselves. At the moment the driver does not download
</para> additional fonts, so you can only use fonts that are already present on
<para> the printer. (Actually, the driver can use any font that is listed in
Note that you need not set <literal>printer=on</literal> in the PPD file, for which it has an AFM file. If you use fonts that are
the [wine] section of <filename>wine.conf</filename>, this <emphasis>not</emphasis> installed in your printer, or in
enables printing via external printer drivers and does not Ghostscript, you will need to use some means of embedding the font in
affect the builtin PostScript driver. the print job or downloading the font to the printer. Note also that
</para> the driver does not yet properly list required fonts in its DSC
<para> comments, so a print manager that depends on these comments to
If you're lucky you should now be able to produce PS files download the proper fonts to the printer may not work properly.)
from Wine! </para>
</para> <para>
<para> Then create a [afmdirs] section in your
I've tested it with win3.1 notepad/write, Winword6 and <filename>wine.conf</filename> (or
Origin4.0 and 32 bit apps such as win98 wordpad, Winword97, <filename>~/.wine/config</filename>) and add a line of the form
Powerpoint2000 with some degree of success - you should be </para>
able to get something out, it may not be in the right place. <screen>
</para> "dir&lt;n&gt;" = "/unix/path/name/"
</screen>
<para>
for each directory that contains AFM files you wish to use.
</para>
<para>
There usually are a lot of afm files already on your system,
within ghostscript, enscript, a2ps or similar programs. You might
check (and probably add) the following entries to the [afmdirs]
section.
</para>
<screen>
"1" = "/usr/share/ghostscript/fonts"
"2" = "/usr/share/a2ps/afm"
"3" = "/usr/share/enscript"
"4" = "/usr/X11R6/lib/X11/fonts/Type1"
</screen>
<para>
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
<ulink url="ftp://ftp.adobe.com/pub/adobe/printerdrivers/win/all/">
ftp://ftp.adobe.com/pub/adobe/printerdrivers/win/all/</ulink>.
See above for information on configuring the driver to use this
file.
</para>
<para>
To enable colour printing you need to have the
<literal>*ColorDevice</literal> entry in the PPD set to
<literal>true</literal>, otherwise the driver will generate
greyscale.
</para>
<para>
Note that you need not set <literal>printer=on</literal> in
the [wine] section of <filename>wine.conf</filename>, this
enables printing via external printer drivers and does not
affect the builtin PostScript driver.
</para>
<para>
If you're lucky you should now be able to produce PS files
from Wine!
</para>
<para>
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.
</para>
</sect3> </sect3>
<sect3> <sect3>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment