Data access and custom reports
The default, PaperCut MF 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 MF 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 MF 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 MF 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:
[app-path]/server/logs/print-logs
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.
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) |