Network printing covers a lot of ground. To understand what exactly goes on with Samba when it is printing on behalf of its Windows clients , let's first look at a " purely Windows " setup: Windows clients with a Windows NT print server.
18.6.1 From Windows Clients to an NT Print Server
Windows clients printing to an NT-based print server have two options. They may:
Both print paths are shown in the flowcharts in Figure 18.13 and Figure 18.14.
Figure 18.13. Print driver execution on the client.
Figure 18.14. Print driver execution on the server.
18.6.2 Driver Execution on the Client
In the first case the print server must spool the file as raw, meaning it shouldn't touch the jobfile and try to convert it in any way. This is what a traditional UNIX-based print server can do too, and at a better performance and more reliably than an NT print server. This is what most Samba administrators probably are familiar with. One advantage of this setup is that this " spooling-only " print server may be used even if no driver(s) for UNIX are available it is sufficient to have the Windows client drivers available; and installed on the clients.
18.6.3 Driver Execution on the Server
The other path executes the printer driver on the server. The client transfers print files in EMF format to the server. The server uses the PostScript, PCL, ESC/P or other driver to convert the EMF file into the printer-specific language. It is not possible for UNIX to do the same. Currently, there is no program or method to convert a Windows client's GDI output on a UNIX server into something a printer could understand.
However, there is something similar possible with CUPS. Read on.