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