Appendix M. PaperCut Integration

Table of Contents

M.1. Delegated Print to PaperCut
M.1.1. PaperCut Configuration
M.1.2. PaperCut Delegated Print Processing
M.1.3. PaperCut Delegated Print Accounting
M.1.4. PaperCut Queries and Reports
M.1.5. Integration Pitfalls
M.2. PaperCut Integration Limitations

PaperCut is a popular print and copy management software product developed by PaperCut Software based in Melbourne, Australia.

Some functions that are not present in PaperCut can be implemented with SavaPage as pre-processor and integrator.

Note

See Section 4.10.5, “PaperCut Integration” on how to set the PaperCut Connectivity options.

M.1. Delegated Print to PaperCut

Delegated Print is integrated with PaperCut when the following conditions are met:

The Proxy Printer must meet the following requirements:

  • The Proxy Printer is managed by PaperCut.

  • The Proxy Printer is configured as non-secure. See Section 4.10.11, “Proxy Print”. If secure printing is required it must be configured in PaperCut and not in SavaPage.

Warning

A Delegated Print job is denied when the delegate or any of the delegators does not exist in PaperCut. This limitation can easily be met when both systems synchronize from the same user source. See Section 4.10.1, “User Source”.

Tips for further reading:

M.1.1. PaperCut Configuration

M.1.1.1. Step 1 - Create shared account

Create a shared parent account called SavaPage. This top-level account must be present, since several sub-accounts will be lazy created by SavaPage.

In addition, any printer used for Delegated Print must be configured to charge to this account. See Section M.1.1.3, “Step 3 - Configure Printers”.

Note

The PaperCut shared account name is known by the SavaPage configuration key:

proxy-print.delegate.papercut.account.shared.parent

The value defaults to SavaPage. See Section 4.10.15.10, “Config Editor” on how to change this value.

M.1.1.2. Step 2 - Enable Multiple Personal Accounts

Enable the PaperCut Multiple Personal Accounts option and add the personal account SavaPage. This account must be present for it is used by SavaPage to charge printing costs to individual persons.

Important

The PaperCut personal account name is known by the SavaPage configuration key:

proxy-print.delegate.papercut.account.personal

The value defaults to SavaPage.

The account type for this account as determined by PaperCut in its own configuration key multi-personal-accounts.definitions (with values like USER-001, USER-002) can be set with this key:

proxy-print.delegate.papercut.account.personal-type

When a value is specified it is used to filter personal account transactions in JDBC queries (CSV downloads) for the Delegated Print context.

See Section 4.10.15.10, “Config Editor” on how to change these values.

M.1.1.3. Step 3 - Configure Printers

Take a moment to consider how you want the PaperCut printers that are used for SavaPage Delegated Print to act. A likely scenario is that you want these printers to be virtual hold/release queues so users can enjoy follow-me printing, and release print jobs at a series of physical printers. Or, may be you want these jobs to be released by administrators only. Consult the PaperCut User Manual on how implement the desired scenario.

There is one crucial printer configuration item though that must be addressed. Make sure that Override user-level settings is set, and activate Do not show account popups and allocate jobs to: a single shared account. Use the Shared Account SavaPage (as created in Step 1) and select the Charge shared account option.

Now, when a Delegated Print job is successfully printed by PaperCut, the cost will be automatically charged to the shared SavaPage account.

M.1.2. PaperCut Delegated Print Processing

SavaPage monitors the print job status in PaperCut and, when printing is successful, charges the costs, as reported by PaperCut, to the proper PaperCut accounts, as explained in the section below.

Important

In addition to PaperCut Account processing, account transactions are still added to SavaPage as explained in Section 3.4.7, “Delegated Print Edit”. However, the printing costs reported by PaperCut overrule any costs defined in SavaPage.

M.1.3. PaperCut Delegated Print Accounting

SavaPage uses the PaperCut cost total of the Delegated Print job to add extra PaperCut account transactions. The comment of each account transaction holds a combination of pipe-separated (|) job parameter fields, with the following meaning:

  • delegate : the user (delegate) who printed the job on behalf of the target users (delegators).

  • class : the class a target user belongs to. A value of - (minus) means the user does not belong to a class. A class can be of type:

  • copies : the number of document copies printed.

  • pages : number of pages within the document.

  • size : the page size of the document (A4, A3).

  • duplex : D for duplex, S for simplex.

  • color : C for color, G for grayscale.

  • id : the CUPS job ID.

  • document : the document name.

  • comment : any comment entered by the delegate.

As a rule SavaPage charges target users individually for print copies.

As an extra, solely for reporting purposes, dedicated PaperCut shared accounts are used to accumulate cost and job information globally (the SavaPage\Jobs account) and per User Class.

Important

No transaction appears in any PaperCut account when the cost of a print job is zero. For transactions to appear you need to specify page cost at the PaperCut printer configuration.

M.1.3.1. PaperCut User Accounting

SavaPage proportionally splits the cost total of the printed Delegated Print job over individual users (delegators), directly or indirectly by group membership. Costs are charged to their personal user account named SavaPage. The comment format of the transaction is:

group | delegate | copies | pages | size | duplex | color | id | document | comment

Copies for users not belonging to a group have dummy group - (minus).

M.1.3.2. PaperCut User Class Accounting

SavaPage proportionally splits the cost total of the printed Delegated Print job over classes. Class cost is proportional to the sum of the print copies for users belonging to the class. This cost is charged to a shared child account of the SavaPage parent account, with format:

savapage.[class].[name]

The [class] placeholder stands for the class type and can have value group or shared. The [name] is placeholder for the class name. The name of a shared child account is prefixed with the name of its parent, separated by a dot character (as parent.child).

PaperCut shared child accounts are ad-hoc created by SavaPage on first use.

The comment format of the transaction is:

delegate | copies | pages | size | duplex | color | id | document | comment

M.1.3.3. PaperCut Job Accounting

As an extra, for each Delegated Print job, SavaPage adds a transaction to the shared child account Jobs of the SavaPage parent account. The comment format of the transaction is:

delegate | copies | pages | size | duplex | color | id | delegate@class-1 | copies-1 | ... | delegate@class-n | copies-n | document | comment

The delegate@class | copies field group shows the printed copies per class and is repeated for each class that was printed for. Copies for users not belonging to a class are accumulated in dummy class - (minus).

Note

The PaperCut shared child account name is known by the SavaPage configuration key:

proxy-print.delegate.papercut.account.shared.child.jobs

The value defaults to Jobs. See Section 4.10.15.10, “Config Editor” on how to change this value.

M.1.4. PaperCut Queries and Reports

Use the on-line queries and run the reports in the PaperCut Admin Web App to answer questions about Delegated Print jobs and transactions from the following perspectives.

M.1.4.1. User Prints

SavaPage documents printed for a user.

UsersUser ListUser DetailsTransactions gives a quick on-line view of personal account transactions. Sort and filter to find the SavaPage transactions.

Use ReportsTransaction ReportsTransaction logs to generate a SavaPage transaction report for a user or user group over a period of time. The report shows the individual transaction details and the total amount charged.

Important

PaperCut does not have a Transaction Report to accumulate transaction totals per user over a period of time. Please use the Delegator Invoicing from PaperCut export function in SavaPage for that purpose.

M.1.4.2. Class Prints

SavaPage documents printed for a class.

Select AccountsShared Account ListAccount DetailsTransaction for a SavaPage class account to get a quick on-line view of account transactions. Sort and filter to find transactions.

The ReportsShared Account Reports section contains many reports that summarize printing activity charged to shared accounts. Select the SavaPage class account to get a transaction summary report for a period of time.

M.1.4.3. Delegate Prints

SavaPage documents printed by a delegate.

UsersUser ListUser DetailsJob Log gives a quick on-line view of the documents printed by a delegate user. Sort and filter to find the print jobs charged to the shared SavaPage account.

M.1.4.4. Delegate Class Prints

SavaPage documents printed by a delegate for a class.

Select AccountsShared Account ListAccount DetailsTransaction for the SavaPage Jobs account to get a quick on-line view of account transactions. Since the comment contains formatted information about classes, you can select transactions with the Comment containing filter.

Likewise you can use ReportsTransaction ReportsTransaction logs to generate a SavaPage\Jobs transaction report for over a period of time. The report shows the individual transaction details and the total amount charged.

M.1.5. Integration Pitfalls

The state of the two systems involved in the Delegated Print chain (SavaPage, PaperCut) is tightly coupled. Restoring an earlier backup of either system can break the work-flow for pending jobs and lead to unwanted results. For instance:

  • When a backup of SavaPage is restored, it will not handle jobs that were submitted to PaperCut after the backup point. In these cases SavaPage will show a print job status that does not reflect the real situation. On the other side, jobs that were already fully processed, might be re-processed by SavaPage, leading to extra charges on the shared PaperCut accounts.

  • When a backup of PaperCut is restored, SavaPage will not find PaperCut print status information for pending jobs that were submitted to PaperCut after the backup point. In these cases SavaPage will show an error print job status, when in real the job is completed or cancelled.

To avoid integration problems, review your backup and restore strategy carefully.

Make sure you create backups of both SavaPage and PaperCut at the same point in time. Also, be sure that at the time of backup all pending Delegated Print jobs are fully processed. When you need to restore, use backups of the same snapshot time, first restore PaperCut and than SavaPage.