18.1. Introduction18.1.1. Features and Benefits18.1.2. Overview18.2. Basic CUPS Support Configuration18.2.1. Linking smbd with libcups.so18.2.2. Simple smb.conf Settings for CUPS18.2.3. More Complex CUPS smb.conf Settings18.3. Advanced Configuration18.3.1. Central Spooling vs. “Peer-to-Peer” Printing18.3.2. Raw Print Serving — Vendor Drivers on Windows Clients18.3.3. Installation of Windows Client Drivers18.3.4. Explicitly Enable “raw” Printing for application/octet-stream18.3.5. Driver Upload Methods18.4. Advanced Intelligent Printing with PostScript Driver Download18.4.1. GDI on Windows – PostScript on UNIX18.4.2. Windows Drivers, GDI and EMF18.4.3. UNIX Printfile Conversion and GUI Basics18.4.4. PostScript and Ghostscript18.4.5. Ghostscript — the Software RIP for Non-PostScript Printers18.4.6. PostScript Printer Description (PPD) Specification18.4.7. Using Windows-Formatted Vendor PPDs18.4.8. CUPS Also Uses PPDs for Non-PostScript Printers18.5. The CUPS Filtering Architecture18.5.1. MIME Types and CUPS Filters18.5.2. MIME Type Conversion Rules18.5.3. Filtering Overview18.5.3.1. Filter requirements18.5.4. Prefilters18.5.5. pstops18.5.6. pstoraster18.5.7. imagetops and imagetoraster18.5.8. rasterto [printers specific]18.5.9. CUPS Backends18.5.10. The Role of cupsomatic/foomatic18.5.11. The Complete Picture18.5.12. mime.convs18.5.13. “Raw” Printing18.5.14. application/octet-stream Printing18.5.15. PostScript Printer Descriptions (PPDs) for Non-PS Printers18.5.16. cupsomatic/foomatic-rip Versus native CUPS Printing18.5.17. Examples for Filtering Chains18.5.18. Sources of CUPS Drivers/PPDs18.5.19. Printing with Interface Scripts18.6. Network Printing (Purely Windows)18.6.1. From Windows Clients to an NT Print Server18.6.2. Driver Execution on the Client18.6.3. Driver Execution on the Server18.7. Network Printing (Windows Clients — UNIX/Samba Print Servers)18.7.1. From Windows Clients to a CUPS/Samba Print Server18.7.2. Samba Receiving Jobfiles and Passing Them to CUPS18.8. Network PostScript RIP18.8.1. PPDs for Non-PS Printers on UNIX18.8.2. PPDs for Non-PS Printers on Windows18.9. Windows Terminal Servers (WTS) as CUPS Clients18.9.1. Printer Drivers Running in “Kernel Mode” Cause Many Problems18.9.2. Workarounds Impose Heavy Limitations18.9.3. CUPS: A “Magical Stone”?18.9.4. PostScript Drivers with No Major Problems — Even in Kernel Mode18.10. Configuring CUPS for Driver Download18.10.1. cupsaddsmb: The Unknown Utility18.10.2. Prepare Your smb.conf for cupsaddsmb18.10.3. CUPS “PostScript Driver for Windows NT/200x/XP”18.10.4. Recognizing Different Driver Files18.10.5. Acquiring the Adobe Driver Files18.10.6. ESP Print Pro PostScript Driver for Windows NT/200x/XP18.10.7. Caveats to be Considered18.10.8. Windows CUPS PostScript Driver Versus Adobe Driver18.10.9. Run cupsaddsmb (Quiet Mode)18.10.10. Run cupsaddsmb with Verbose Output18.10.11. Understanding cupsaddsmb18.10.12. How to Recognize If cupsaddsmb Completed Successfully18.10.13. cupsaddsmb with a Samba PDC18.10.14. cupsaddsmb Flowchart18.10.15. Installing the PostScript Driver on a Client18.10.16. Avoiding Critical PostScript Driver Settings on the Client18.11. Installing PostScript Driver Files Manually Using rpcclient18.11.1. A Check of the rpcclient man Page18.11.2. Understanding the rpcclient man Page18.11.3. Producing an Example by Querying a Windows Box18.11.4. Requirements for adddriver and setdriver to Succeed18.11.5. Manual Driver Installation in 15 Steps18.11.6. Troubleshooting Revisited18.12. The Printing *.tdb Files18.12.1. Trivial Database Files18.12.2. Binary Format18.12.3. Losing *.tdb Files18.12.4. Using tdbbackup18.13. CUPS Print Drivers from Linuxprinting.org18.13.1. foomatic-rip and Foomatic Explained18.13.1.1. 690 “Perfect” Printers18.13.1.2. How the Printing HOWTO Started It All18.13.1.3. Foomatic’s Strange Name18.13.1.4. cupsomatic, pdqomatic, lpdomatic, directomatic18.13.1.5. The Grand Unification Achieved18.13.1.6. Driver Development Outside18.13.1.7. Forums, Downloads, Tutorials, Howtos — also for Mac OS X and Commercial UNIX18.13.1.8. Foomatic Database-Generated PPDs18.13.2. foomatic-rip and Foomatic-PPD Download and Installation18.14. Page Accounting with CUPS18.14.1. Setting Up Quotas18.14.2. Correct and Incorrect Accounting18.14.3. Adobe and CUPS PostScript Drivers for Windows Clients18.14.4. The page_log File Syntax18.14.5. Possible Shortcomings18.14.6. Future Developments18.15. Additional Material18.16. Auto-Deletion or Preservation of CUPS Spool Files18.16.1. CUPS Configuration Settings Explained18.16.2. Pre-Conditions18.16.3. Manual Configuration18.17. Printing from CUPS to Windows Attached Printers18.18. More CUPS-Filtering Chains18.19. Common Errors18.19.1. Windows 9x/ME Client Can’t Install Driver18.19.2. “cupsaddsmb” Keeps Asking for Root Password in Never-ending Loop18.19.3. “cupsaddsmb” Errors18.19.4. Client Can’t Connect to Samba Printer18.19.5. New Account Reconnection from Windows 200x/XP Troubles18.19.6. Avoid Being Connected to the Samba Server as the Wrong User18.19.7. Upgrading to CUPS Drivers from Adobe Drivers18.19.8. Can’t Use “cupsaddsmb” on Samba Server Which Is a PDC18.19.9. Deleted Windows 200x Printer Driver Is Still Shown18.19.10. Windows 200x/XP ”Local Security Policies”18.19.11. Administrator Cannot Install Printers for All Local Users18.19.12. Print Change Notify Functions on NT-clients18.19.13. WinXP-SP118.19.14. Print Options for All Users Can’t Be Set on Windows 200x/XP18.19.15. Most Common Blunders in Driver Settings on Windows Clients18.19.16. cupsaddsmb Does Not Work with Newly Installed Printer18.19.17. Permissions on /var/spool/samba/ Get Reset After Each Reboot18.19.18. Print Queue Called “lp” Mis-handles Print Jobs18.19.19. Location of Adobe PostScript Driver Files for “cupsaddsmb”18.20. Overview of the CUPS Printing Processes