How does PaperCut Work? A behind the scenes look!

A few customers have asked "how does PaperCut track printing"? This knowledge base article gives a quick overview of the process and explains what's happening behind the scenes.

  1. A user at a workstation selects Print... from their application. The application renders the job and it gets sent to the server's queue.
  2. The print job arrives in the print queue and begins spooling.
  3. PaperCut detects the event using standard Operating System APIs (Windows, Novell or CUPS on Mac and Linux).
  4. PaperCut pauses the job (to prevent printing until analysis is complete).
  5. Analysis is conducted by reading the spool file. On Windows these are always located on the server in:
    C:\Windows\System32\Spool\Printers
  6. The process that conducts the analysis (the print provider) calls across to the application server.
  7. The Application Server makes a decision if the job should proceed. It factors in details such as:
    1. Printer filters such as maximum job size
    2. The balance in the user's account
    3. Other access rules
  8. The print provider will either unpause the job (allow it to print) or delete if from the queue accordingly.

Other Notes:

  • No modification is made to the job at all.
  • All queue integration is via standard APIs and/or reading standard spool files.
  • No special driver or driver interaction occurs.
  • All analysis is server-side and no client-side printing interaction occurs.

There is some more discussion on the architecture here in the manual:


Categories: Architecture


Keywords: design, function, internals, workings, technical details

Page last modified on September 21, 2008, at 10:00 PM