Installing Windows printer drivers in Samba
From openSUSE
Install Windows printer drivers for shared printers on your Samba server so that Windows clients will be able to install them automatically from the server.
There are two distinct ways to do this:
The usual way is to install the Windows drivers for the particular printer and set the parameter "cups options = raw" on the Samba server. In that case the Windows client will generate the commands for the printer and the server will just pass them through. This is normally done by installing them from a Windows client, which requires giving the Windows administrator account write permission to the Samba printer driver share.
The alternative way is to install the CUPS Windows drivers available at www.cups.org. This makes the Windows client generate PostScript output which is then converted to the actual printer commands by the server. This way is described here.
First, modify the Samba configuration file /etc/samba/smb.conf so that CUPS will do the PostScript processing and all clients can access the Samba share "print$" which hosts the drivers:
- In section [global], remove the parameter "cups options = raw".
- In section [print$], change the parameter "guest ok = no" to "guest ok = yes".
I recommend using SWAT for that, because of its convenient access to the appropriate Samba manual section for each parameter, but it can also be done directly with a text editor.
Second, download the CUPS Windows drivers tarball from http://www.cups.org/windows/software.php and install it by untarring to a temporary location and running "make install" there.
Third, copy the Adobe PostScript driver files from directory %SystemRoot%\system32\spool\drivers\w32x86\3 on one of the Windows 2000/XP clients to the Samba server's /usr/share/cups/drivers directory. I used WinSCP for that and just copied all the files whose names started with "ps" but had to rename them to lowercase afterwards because WinSCP had stored them with uppercase names which the next step doesn't like. Perhaps copying them to a Samba share and moving them afterwards would have been easier.
Finally, run the command
cupsaddsmb -H localhost -a -v
as root.

