Validating page counts using hardware checks

PaperCut provides accurate tracking of printer usage by analyzing the printer spool file on the server. Before the job is sent to the printer, PaperCut determines the job attributes including the page count, color/grayscale, duplex, paper-size, etc. This up-front analysis allows PaperCut:

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

If the job is sent to the printer but it does not print completely (e.g. if the user cancels the job at the printer), then print job hardware checks allow PaperCut to determine the actual number of pages printed. These checks are performed at the hardware-level by communicating with the printer via SNMP (Simple Network Management Protocol).

The combination of up-front spool file analysis and post-job hardware verification of the jobs provides the best of both worlds:

Causes for differences in page counts

The printer may 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 - e.g. LCD screen or cancel button.

  • The printer goes into an error state (e.g. out of toner) after the job has partially printed. The administrator may then cancel the job at the printer.

  • The print job may have become corrupted, causing the printer to print 100's of pages of junk (e.g. 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!

Requirements

PaperCut's hardware checks use the SNMP 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:

  • A network printer that supports the SNMP protocol.

  • SNMP enabled in the printer (also ensure the "public" SNMP community is enabled).

  • The network/firewall allows SNMP UDP packets from the print server to the printers. SNMP uses UDP port 161.

  • Some additional configuration of the printer queues may be required. See installation instructions in the section called “Configuring hardware checks”.

  • Only PaperCut should send jobs to the printer. If a job from another print server is sent it's possible the resulting statistics will be unreliable

How hardware checks work

The Printer SNMP standard allows querying of printer status and page count information over SNMP. PaperCut 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 confirms the printer is idle (i.e. not printing).

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

  3. PaperCut waits for the job to complete by querying the printer status and page counts. If the printer is in error (e.g. out of paper), then PaperCut will continue to wait until the printer error is resolved and the job completes printing.

  4. Once 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 installations of PaperCut. Enabling the checks requires some configuration within PaperCut and also some additional configuration of the operating system's printer queues. Hardware checks may be enabled/disabled at the individual printer queue level, or alternatively the settings can be applied to multiple printers using the the section called “Copying Printer Settings”.

Enabling hardware checks

To enable the print job hardware checks:

  1. Navigate to the Printers tab.

  2. Select the printer to configure.

  3. Under the Advanced Configuration setting, enable the Enable print job hardware check option.

    Enabling the hardware check

    Figure 7.19. Enabling the hardware check

  4. Press OK or Apply to save the changes.

    Important

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

    Tip

    On Windows print servers, this setting can take up to 2 minutes to take effect. This can be sped up by restarting the PaperCut Print Provider service.

When a difference in page counts is reported by the printer, the administrator can choose how this is applied to the print jobs. This option is configured using the When a difference in page counts is detected: settings as follows:

Hardware check adjustment options

Figure 7.20. Hardware check adjustment options

'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 can be useful when you want to use the hardware check information to validate refund request 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 will be automatically applied to the job.

For example, if a user printed a 5 page document costing $0.50, and they cancelled 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, it is possible for the hardware check to report an increased number of pages. For example, this might happen when a print job is corrupted and prints out 100's of pages of "junk" instead of what the user printed. In this case the hardware check will report an increased number of pages resulting in an increased cost. By default PaperCut will 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, then select the Always apply cost adjustments option.

Tip

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

Windows printer queue configuration

To perform printer hardware checks, the Windows printer queues need to be configured to use the PaperCut TCP/IP Port type. This port works just like the Standard TCP/IP Port that ships with Windows. The PaperCut TCP/IP Port allows PaperCut NG 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

  • Open the Printers list

  • Right-click on the printer and select Printer Properties or Properties

  • Select the Ports tab.

  • Press the Add Port button.

    Printer properties dialog:

    Figure 7.21. Printer properties dialog:

  • Select the PaperCut TCP/IP Port option. (Note: if this port does not appear in the list of available port types, then please see the section called “Why is the PaperCut TCP/IP Port not available to be chosen in port selection on Windows?”.)

  • Press the New Port... button.

    Printer ports dialog:

    Figure 7.22. Printer ports dialog:

  • Enter the printer IP address and port name.

  • Press Add Port to save the new port.

    Add port dialog:

    Figure 7.23. Add port dialog:

  • Press the Close button on each dialog window.

  • This printer will now be configured to use the new port. The previous port may now be deleted if no longer in use by other printers.

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

  • Open the Printers list

  • Click the Add a Printer button.

  • Choose to add a Local printer.

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

  • Select the PaperCut TCP/IP Port option, and click Next.

    Choose printer port:

    Figure 7.24. Choose printer port:

  • Enter the printer IP address and port name.

  • Press Add Port to save the new port.

  • 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 via the PaperCut administration console and will come into affect automatically shortly after the hardware checks are enabled. On Linux or Mac, the hardware checking is supported for the CUPS backends of socket, ipp and lpd.

Changing the SNMP community string

By default, the hardware checks use the SNMP community string of "public". For a basic level of security, one can change the SNMP community string that is used. This must also be set in the configuration of the 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-hand-side of the equals line. For example:

                    SNMPCommunity=secretcommunity
                                    

Reviewing hardware check results

Hardware check results are recorded in PaperCut on the print log records. When a hardware check is recorded the Checked status appears 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.

Hardware check status

Figure 7.25. Hardware check 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 on the Checked status.

  2. Review the hardware check information.

  3. Press the Apply Differences button. This will apply the page counts and any cost differences to the print log.

Hardware check log status

Figure 7.26. Hardware check log status

Known Limitations

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

  • The use of the PaperCut TCP/IP Ports in a Microsoft Clustered Windows Printing Environment should be considered experimental (see Chapter 24, Clustering and High Availability, for more information on Clustering in PaperCut). Clustering is a complex technology and further work is being undertaken to support the Hardware Page Count Checks in a clustered environment. We don't recommend its use in a production environment at this time.

  • Hardware-level checks will 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.

  • 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 may not. We suggest taking some time to test this option across your device type(s) once enabled.

  • On Windows, a different Printer Port needs to be installed/configured to support this level of device integration. Care has been taken to emulate the behavior of the Standard TCP/IP Port, however some drivers may complain if a non-default port is selected. Although this is rare, it may 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 may cause inaccurate hardware validation as it will appear that the job never prints, or at least in a timely fashion. It is recommended to use PaperCut based release stations where required: (see Chapter 10, Hold/Release Queues & Print Release Stations

  • If you have many printers it's very time consuming to use the Windows GUI to change the ports! Sorry about this, however we've not found a reliable way to script this process. Our recommended approach is to first test on a representative sample of your devices for a few days, then role the port change out across your fleet. We have found that some good music on the iPod and copious amounts of coffee will help ease the frustration :-)

Troubleshooting

The "Checked" status does not appear on any print logs

  • Verify that the printer supports SNMP and that SNMP v1 or v2 is enabled in the printer's admin interface.

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

  • If using a Windows print server, check that the printer is configured to use the PaperCut TCP/IP Port. See the section called “Windows printer queue configuration”

  • Verify that hardware checks are enabled in PaperCut. See the section called “Configuring hardware checks”.

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

        Windows: [app-path]\providers\print\[platform]\pc-print-monitor.exe -p -h [printer-ip]
        Mac/Linux/Novell: [app-path]/providers/print/[platform]/pc-print-monitor -p -h [printer-ip]
    

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

Why is the "Checked" status missing on some some print logs?

  • An intermittent networking problem between the print server and printer may have stopped the SNMP page counts from being retrieved. E.g. the network was briefly interrupted while PaperCut was waiting for the print job to finish printing.

  • If the job is deleted from the print queue while in progress PaperCut will cancel any hardware checks and the Checked status will not appear on the print log. To avoid this, it is recommended to fix any problems (e.g. out of paper, etc) at the printer and then allow the document to finish printing. This will allow PaperCut to retrieve the page counts from the printer after the job completes. Only delete the job from the queue if it stays stuck even after the printer error has been resolved.

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 may be 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.