Available in PaperCut NG and PaperCut MF.

Validate page counts using hardware checks



This feature is available using SNMPv1/v2c only.

PaperCut NG/MF's hardware checks use the SNMPSimple Network Management Protocol (SNMP) is a component of the Internet Protocol Suite as defined by the Internet Engineering Task Force (IETF). It consists of a set of standards for network management, including an application layer protocol, a database schema, and a set of data objects. Devices that typically support SNMP include routers, switches, servers, workstations, printers, modem racks and more. protocol to query the page counters of the printer. This is a network protocol supported by most network printers. To support hardware checks the following is required:

PaperCut NG/MF provides accurate tracking of printer usage with the combination of up-front spool fileA print spool file is generated when a user sends a document to a printer. The print spool stores the print job information, and sits in a print queue until it is retrieved and printed by a printer. analysis and post-job hardware verification of the jobs. PaperCut NG/MF tracks printer usage by performing:

Up-front page count and cost calculations

Before the job is sent to the printer, PaperCut NG/MF analyzes the printer spool file on the server to determine the job attributes, including the page count, color/grayscale, duplex, paper-size, etc. This up-front analysis allows PaperCut NG/MF to:

After the job is queued for printing, PaperCut NG/MF logs the print job information and charges the usage to the user.

Verification of the number of printed pages after the job is completed

PaperCut NG/MF validates page counts using hardware checks after a print job has been processed. If the job is sent to the printer but it does not print completely (for example, if the user cancels the job at the printer), then print job hardware checks allow PaperCut NG/MF to determine the actual number of pages printed.

The hardware check counts the number of pages only and does not analyze the job attributes, such as the number of color/grayscale pages, or the actual page size. These checks are performed at the hardware-level by communicating with the printer via SNMP (Simple Network Management Protocol).

If there is a discrepancy between the up-front page count and the hardware count, you can choose whether you want to use the:

For more information about these options, see Configuring hardware checks below.

Causes for differences in page counts

The printer can report a difference to the PaperCut server's spool file analysis for a variety of reasons:

  • The user cancels the job at the printer's panel, for example using the LCD screen or cancel button.

  • The printer goes into an error state (for example, out of toner) after the job has partially printed. The administrator can then cancel the job at the printer.

  • The print job might have become corrupted, causing the printer to print 100s of pages of junk (for example, PostScript code) instead of the user's document!

  • Configuration "strangeness", such as the devices double-counting large pages or counting the blank page at the end of a duplex job. Most of these corner-cases have been worked around, however, like all things in Computing, some are bound to show up again!

How hardware checks work

The Printer SNMP standard allows querying of printer status and page count information over SNMP. PaperCut NG/MF makes use of this information to verify the number of pages printed for each print job. This works as follows:

  1. Before the print job is sent to the printer PaperCut NG/MF confirms the printer is idle (that is, not printing).

  2. A snapshot of the page counters is retrieved using SNMP.

  3. PaperCut NG/MF waits for the job to complete by querying the printer status and page counts. If the printer is in error (for example, out of paper), then PaperCut NG/MF continues to wait until the printer error is resolved and the job completes printing.

  4. After the job is completed and the printer is idle, another snapshot of the page counts is taken.

  5. The total pages printed is calculated using the differences between the initial and the post-job snapshot.

Configuring hardware checks

Printer hardware checks are not enabled by default in PaperCut NG/MF. Enabling the checks requires some configuration within PaperCut NG/MF and also some additional configuration of the operating system's printer queues.

You can enable/disable hardware checks at the individual printer queue level, or alternatively you can apply the same settings to multiple printers using the Copy printer settings.

Enabling hardware checks


On Windows print servers, you must also configure the printer to use a PaperCut TCP/IP Port. For instructions see Windows printer queue configuration.

To enable the print job hardware checks:

  1. Click the Printers tab.

    The Printer List page is displayed.

  2. Select a printer.

    The Printer Details page is displayed showing the Summary tab contents.

  3.  In the Advanced Configuration area, select the Validate page counts after printing (hardware check) check box.

  4. In When a difference in page counts is detected, select how to handle a difference in page counts between the printer and PaperCut NG/MF:

    • Show differences in the log status. Do not adjust

      The page count differences are recorded against the print job, but no adjustments are made to the page counts or job costs. This is the default option when hardware checks are enabled.

      This mode is useful when you want to use the hardware check information to validate refund requests by users. In this case the administrator can verify that a user's job did not complete printing and then refund the job.

      The hardware check information is displayed in the print log status and also in the refund screens.

    • Apply differences and adjust the print cost automatically

      In this mode, the hardware check information is also recorded on the print jobs as described above. However, any differences in page count and costs are automatically applied to the job.

      For example, if a user printed a 5 page document costing $0.50, and they canceled the job after only 3 pages were printed, the job cost would be reduced to $0.30 and the user would be refunded $0.20.

      In rare situations, the hardware check can report an increased number of pages. For example, this might happen when a print job is corrupted and prints out 100s of pages of "junk" instead of what the user printed. In this case, the hardware check reports an increased number of pages resulting in an increased cost. By default, PaperCut NG/MF does not apply the adjustments to the job if the cost would increase.

      If you would prefer to apply the differences even if the cost is increased, select Always apply cost adjustments.


      To enable the hardware page counts quickly on multiple printers, use the Copy settings to other printers action available on the left of screen.

  5. Click OK.

Windows printer queue configuration

To perform printer hardware checks, configure the Windows printer queues to use the PaperCut TCP/IP Port type. This port works the same as the Standard TCP/IP Port that ships with Windows. The PaperCut TCP/IP Port allows PaperCut NG/MF to perform the page count checks before and after printing the job.

To configure an existing printer queue to use a PaperCut TCP/IP Port

  1. Open the Printers list

  2. Right-click the printer; then select Printer Properties or Properties

  3. Select the Ports tab.

  4. Click Add Port.

  5. Select PaperCut TCP/IP Port. (Note: if this port is not displayed in the list of available port types, then see Why is the PaperCut TCP/IP Port not available to be chosen in port selection on Windows?.)

  6. Click New Port.

  7. Enter the printer Hostname or IP address, and port name.

  8. Click Add Port to save the new port.

  9. Click Close on each dialog window.

  10. This printer is now configured to use the new port. Delete the previous port if it is no longer in use by other printers.

To create a new printer queue to use a PaperCut TCP/IP Port:

  1. Open the Printers list

  2. Click Add a Printer.

  3. Choose to add a Local printer.

  4. When prompted for the printer port, select Create a new port.

  5. Select the PaperCut TCP/IP Port option; then click Next.

  6. Enter the printer IP address and port name.

  7. Click Add Port to save the new port.

  8. Complete the Add Printer wizard as normal choosing the drivers, etc.

Novell, Linux and Mac printer queue configuration

When using Novell, Linux or Mac there is no additional configuration of the operating system required for hardware checks to be enabled. This function is controlled through the PaperCut Admin web interface and comes into affect automatically shortly after the hardware checks are enabled. On Linux or Mac, the hardware checking is supported for the CUPSCommon User Printing System (CUPS) is a printing system for Unix operating systems that allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer. backends of socket, ipp and lpd.

Changing the SNMP community string

By default, the hardware checks use the SNMPv1/v2c community string of "public". For a basic level of security, you can change the community string. You must also set the same community string in the configuration of the actual printer.

  1. Open the file [app_dir]/providers/print/[platform]/print-provider.conf in a text editor such as Notepad.

  2. Locate the line SNMPCommunity= and enter the new community string on the right side of the equals line. For example:


  3. Go to the printer and update its configuration. For more information, refer to the printer's Embedded Guide.

Reviewing hardware check results

Hardware check results are recorded in PaperCut on the Job Log page. When a hardware check is recorded, the Checked status is displayed in the Status column of the print logs as shown below.

To see the basic details of the hardware check, hover your mouse over the Checked status.

When the hardware check detects a difference, click the Checked status link to see more detailed information.

To manually apply hardware checks to a print job (if this is not configured to apply automatically):

  1. Click the Checked status.

  2. Review the hardware check information.

  3. Click Apply Differences. This applies the page counts and any cost differences to the print log.

Known limitations

Hardware-level page count checks are not enabled by default. Always carefully consider these limitations and known issues before implementing:

  • Hardware-level checks slow down printing a little (a few seconds between each job). The system needs to take a count snapshot before and after a job. The start/end of a job is detected by the printer entering an idle state and stabilization on some devices can take a few seconds (printing => idle). This process adds a small delay between each job.

  • Copier functions that delay printing such as printing to a "Mailbox" will prevent PaperCut from detecting the print job as it is expected that the print job is printed immediately.

  • Not all devices support SNMP and even some devices that do, do not support the ability to check page counts at the hardware level. Most major MPF/MFD devices support SNMP, however, smaller printer brands might not. Make sure you test this option across your device type(s) once enabled.

  • On Windows, install/configure a different Printer Port to support this level of device integration. Care has been taken to emulate the behavior of the Standard TCP/IP Port, however, some drivers might complain if a non-default port is selected. Although this is rare, it can cause issues with some drivers. Always test the printer after changing the printer port. The development team is looking at ways to remove the dependency on a custom port, however, at the current time this method has proven to be the most reliable.

  • The use of non-PaperCut hold/release functionality on printers and copiers can cause inaccurate hardware validation as it appears that the job never prints, or at least in a timely manner. We recommend you use PaperCut Release Stations where required. (See Secure print release

  • If you have many printers, it's very time consuming to use the Windows GUI to change the ports! We have not found a reliable way to script this process. We recommend you first test on a representative sample of your devices for a few days, then roll the port change out across your fleet.


The "Checked" status is not displayed on any print logs
  • Verify that the printer supports SNMP and that SNMPv1/v2c is enabled in the printer's Admin web interface.

    To enable SNMPv1 or v2, set the "public" Community name in the Admin web interface to be the same as on the device. See Using the Advanced Config Editor to find out how to set the advanced configuration variable (printer.snmp.community) to be the same as on the device.

  • Ensure that your networks and firewalls allow SNMP traffic (that is, UDP port 161) between your print server and printers.

  • If you're using a Windows print server, check that the printer is configured to use the PaperCut TCP/IP Port. See Windows printer queue configuration.

  • Verify that hardware checks are enabled in PaperCut. See Configuring hardware checks.

  • You can test that PaperCut NG/MF can query SNMP data from the printer by running the following in a command prompt or terminal/shell:


    [app-path]\providers\print\[platform]\pc-print-monitor.exe -p -h [printer-ip]


    [app-path]/providers/print/[platform]/pc-print-monitor -p -h [printer-ip]

    If SNMP data can be retrieved, some basic status information is printed. If not, an error is displayed.

  • If you are still unable to diagnose the problem, then send the following log files in a support request:


    [app-path]\providers\print\[platform]\print-monitor.log* [app-path]\providers\print\[platform]\print-provider.log*



Why is the "Checked" status missing on some print logs?
Why is the PaperCut TCP/IP Port not available to be chosen in port selection on Windows?
  • A possible reason why the PaperCut TCP/IP Port is not available is because the port was unable to be installed due to a Security Policy disabling the installation of unsigned drivers. A solution for this is to change the Security Policy for the unsigned driver installation behavior to either allow unsigned driver installations or to warn but allow their installation.