You are here: Configuration > Advanced customization > Data access and custom reports

Data access and custom reports

The default, PaperCut NG installation stores data in an internal database. The database is Apache Derby - an open source database written by IBM and based on their DB2 Cloudscape Database. The internal database is optimized for embedded use, is very robust, ACID compliant, and scales well. The internal database, however, is not designed for multi-application access. To access the data from an external source, such as a reporting program, consider running PaperCut NG on an external database (RDBMSA Relational database management system (RDBMS) is a program that lets you create, update, and administer a relational database. Most commercial RDBMS's use the Structured Query Language (SQL) to access the database, although SQL was invented after the development of the relational model and is not necessary for its use.) designed for multi-user and multi-applicaiton user access. Common database solutions include Microsoft SQLStructured Query Language (SQL) is a special-purpose programming language designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS). Server, Oracle, PostgreSQL and MySQL. For more information see Deployment on an external database (RDBMS).

The PaperCut NG data structure is relatively simple and people with Crystal Reports, MS Access, or SQL experience should have no problems extracting data or writing custom reports. Report developers should keep in mind:

  • Access the data only in read-only mode. Modifying data directly underneath the application can cause unpredictable behavior.

  • Always test any custom reports after an upgrade as the underlying data format might have changed. PaperCut Software developers try to minimize data structure changes but they are expected to occur in major upgrades.

You can find a database schema diagram in the PaperCut NG knowledge base located at Database Schema Diagrams.

Plain text print log

In addition to storing print log information in the database, a real-time, plain text log is also written into the directory:


The log file is in a tab delimited format and a new log is created for each day. Files are named with the format printlog_yyyy_mm_dd.log and files are archived for 30-days. The tab delimited file can be easily imported into programs, such as Microsoft Excel, Microsoft Access. or other databases.

Table 78: Text print log file format
Field Description
Field 1 Date in format yyyy-MM-dd\th:mm:ss a/p
Field 2 Server Name
Field 3 Printer Name
Field 4 User who printed the document
Field 5 Account charged (usually the user's personal account but could be a shared accountA shared account is an account that is shared by multiple users. For example, in business, shared accounts can be used to track printing costs by business unit, project, or client. Organizations like legal firms, engineering firms, or accounting offices often have long lists of accounts, projects, clients, or matters. In a school or university, shared accounts can be used to track printing by departments, classes, or subjects.)
Field 6 Client/Workstation Name
Field 7 Document name
Field 8 Total number of pages
Field 9 Total number of color pages
Field 10 Number of copies (this has already been used to calculate the total pages).
Field 11 Cost
Field 12 Duplex status
Field 13 Grayscale status (Color mode)
Field 14 Paper Size (e.g. Letter, A4)
Field 15 Paper Height in Millimetres (divide by 24.5 for inches)
Field 16 Paper Width in Millimetres (divide by 24.5 for inches)
Field 17 Print job size in KB
Field 18 Printer Language
Field 19 Cost Adjustments (comma separated)
Field 21 Job Type (PRINT)


Share your findings and experience with other PaperCut users. Feel free to add comments and suggestions about this Knowledge Base article. Please don't use this for support requests.