21.1. Introduction21.1.1. Features and Benefits21.1.2. Overview21.2. Basic CUPS Support Configuration21.2.1. Linking smbd with libcups.so21.2.2. Simple smb.conf Settings for CUPS21.2.3. More Complex CUPS smb.conf Settings21.3. Advanced Configuration21.3.1. Central Spooling vs. “Peer-to-Peer” Printing21.3.2. Raw Print Serving: Vendor Drivers on Windows Clients21.3.3. Installation of Windows Client Drivers21.3.4. Explicitly Enable “raw” Printing for application/octet-stream21.3.5. Driver Upload Methods21.4. Advanced Intelligent Printing with PostScript Driver Download21.4.1. GDI on Windows, PostScript on UNIX21.4.2. Windows Drivers, GDI, and EMF21.4.3. UNIX Printfile Conversion and GUI Basics21.4.4. PostScript and Ghostscript21.4.5. Ghostscript: The Software RIP for Non-PostScript Printers21.4.6. PostScript Printer Description (PPD) Specification21.4.7. Using Windows-Formatted Vendor PPDs21.4.8. CUPS Also Uses PPDs for Non-PostScript Printers21.5. The CUPS Filtering Architecture21.5.1. MIME Types and CUPS Filters21.5.2. MIME Type Conversion Rules21.5.3. Filtering Overview21.5.3.1. Filter Requirements21.5.4. Prefilters21.5.5. pstops21.5.6. pstoraster21.5.7. imagetops and imagetoraster21.5.8. rasterto [printers specific]21.5.9. CUPS Backends21.5.10. The Role of cupsomatic/foomatic21.5.11. The Complete Picture21.5.12. mime.convs21.5.13. “Raw” Printing21.5.14. application/octet-stream Printing21.5.15. PostScript Printer Descriptions for Non-PostScript Printers21.5.16. cupsomatic/foomatic-rip Versus Native CUPS Printing21.5.17. Examples for Filtering Chains21.5.18. Sources of CUPS Drivers/PPDs21.5.19. Printing with Interface Scripts21.6. Network Printing (Purely Windows)21.6.1. From Windows Clients to an NT Print Server21.6.2. Driver Execution on the Client21.6.3. Driver Execution on the Server21.7. Network Printing (Windows Clients and UNIX/Samba Print Servers)21.7.1. From Windows Clients to a CUPS/Samba Print Server21.7.2. Samba Receiving Job-Files and Passing Them to CUPS21.8. Network PostScript RIP21.8.1. PPDs for Non-PS Printers on UNIX21.8.2. PPDs for Non-PS Printers on Windows21.9. Windows Terminal Servers (WTS) as CUPS Clients21.9.1. Printer Drivers Running in “Kernel Mode” Cause Many Problems21.9.2. Workarounds Impose Heavy Limitations21.9.3. CUPS: A “Magical Stone”?21.9.4. PostScript Drivers with No Major Problems, Even in Kernel Mode21.10. Configuring CUPS for Driver Download21.10.1. cupsaddsmb: The Unknown Utility21.10.2. Prepare Your smb.conf for cupsaddsmb21.10.3. CUPS “PostScript Driver for Windows NT/200x/XP”21.10.4. Recognizing Different Driver Files21.10.5. Acquiring the Adobe Driver Files21.10.6. ESP Print Pro PostScript Driver for Windows NT/200x/XP21.10.7. Caveats to Be Considered21.10.8. Windows CUPS PostScript Driver Versus Adobe Driver21.10.9. Run cupsaddsmb (Quiet Mode)21.10.10. Run cupsaddsmb with Verbose Output21.10.11. Understanding cupsaddsmb21.10.12. How to Recognize If cupsaddsmb Completed Successfully21.10.13. cupsaddsmb with a Samba PDC21.10.14. cupsaddsmb Flowchart21.10.15. Installing the PostScript Driver on a Client21.10.16. Avoiding Critical PostScript Driver Settings on the Client21.11. Installing PostScript Driver Files Manually Using rpcclient21.11.1. A Check of the rpcclient man Page21.11.2. Understanding the rpcclient man Page21.11.3. Producing an Example by Querying a Windows Box21.11.4. Requirements for adddriver and setdriver to Succeed21.11.5. Manual Driver Installation in 15 Steps21.11.6. Troubleshooting Revisited21.12. The Printing *.tdb Files21.12.1. Trivial Database Files21.12.2. Binary Format21.12.3. Losing *.tdb Files21.12.4. Using tdbbackup21.13. CUPS Print Drivers from Linuxprinting.org21.13.1. foomatic-rip and Foomatic Explained21.13.1.1. 690 “Perfect” Printers21.13.1.2. How the Printing HOWTO Started It All21.13.1.3. Foomatic’s Strange Name21.13.1.4. cupsomatic, pdqomatic, lpdomatic, directomatic21.13.1.5. The Grand Unification Achieved21.13.1.6. Driver Development Outside21.13.1.7. Forums, Downloads, Tutorials, Howtos (Also for Mac OS X and Commercial UNIX)21.13.1.8. Foomatic Database-Generated PPDs21.13.2. foomatic-rip and Foomatic PPD Download and Installation21.14. Page Accounting with CUPS21.14.1. Setting Up Quotas21.14.2. Correct and Incorrect Accounting21.14.3. Adobe and CUPS PostScript Drivers for Windows Clients21.14.4. The page_log File Syntax21.14.5. Possible Shortcomings21.14.6. Future Developments21.14.7. Other Accounting Tools21.15. Additional Material21.16. Autodeletion or Preservation of CUPS Spool Files21.16.1. CUPS Configuration Settings Explained21.16.2. Preconditions21.16.3. Manual Configuration21.17. Printing from CUPS to Windows-Attached Printers21.18. More CUPS Filtering Chains21.19. Common Errors21.19.1. Windows 9x/Me Client Can’t Install Driver21.19.2. “cupsaddsmb” Keeps Asking for Root Password in Never-ending Loop21.19.3. “cupsaddsmb” or “rpcclient addriver” Emit Error21.19.4. “cupsaddsmb” Errors21.19.5. Client Can’t Connect to Samba Printer21.19.6. New Account Reconnection from Windows 200x/XP Troubles21.19.7. Avoid Being Connected to the Samba Server as the Wrong User21.19.8. Upgrading to CUPS Drivers from Adobe Drivers21.19.9. Can’t Use “cupsaddsmb” on Samba Server, Which Is a PDC21.19.10. Deleted Windows 200x Printer Driver Is Still Shown21.19.11. Windows 200x/XP Local Security Policies21.19.12. Administrator Cannot Install Printers for All Local Users21.19.13. Print Change, Notify Functions on NT Clients21.19.14. Win XP-SP121.19.15. Print Options for All Users Can’t Be Set on Windows 200x/XP21.19.16. Most Common Blunders in Driver Settings on Windows Clients21.19.17. cupsaddsmb Does Not Work with Newly Installed Printer21.19.18. Permissions on /var/spool/samba/ Get Reset After Each Reboot21.19.19. Print Queue Called “lp” Mishandles Print Jobs21.19.20. Location of Adobe PostScript Driver Files for “cupsaddsmb”21.20. Overview of the CUPS Printing Processes