PaperCut NG



When an organization can easily answer 'Who, What, When, Where, Why, and How' their printing behavior affects their bottom line, they are finally managing with the facts.

In fact, more than 50,000 organizations in 100+ countries already use PaperCut NG to do just that.

PaperCut NG is the easy way to automatically monitor and manage printing in your organization, giving you control over your costs and environmental impact. PaperCut NG software intercepts print jobs on the print server and analyzes them, applying rules to enforce your print policies. PaperCut NG gives you full control over your fleet of printers.

PaperCut NG is the easy way to automatically monitor and manage printing in your organization, giving you control over your costs and environmental impact. PaperCut NG software intercepts print jobs on the print server and analyzes them, applying rules to enforce your print policies. PaperCut NG gives you full control over your fleet of printers.

Track All Activity

Build on PaperCut NG printing PLUS copy, scan and fax.

Find-Me Printing

Print to a single global queue, walk up and collect at any device.

  1. Use PaperCut NG when you need to manage and control printing. It’s an easy to use, cost effective print tracking and control solution. PaperCut MF goes beyond just print, with the ability to manage and track off-the-glass copier activity, including scan, copy and fax via hardware-level integration.
  2. PaperCut's advanced scripting interface is a powerful and flexible feature that can be used to define and finely tune your printing policy. MORE + Track MFD Copy/Print/Scan/Fax.
  3. Our software library provides a free download of PaperCut NG 20.1.2. The common filename for the program's installer is pc-web-print.exe. The most recent installer that can be downloaded is 326.9 MB in size. The following versions: 20.0, 19.2 and 18.3 are the most frequently downloaded ones by the program users.
  4. PaperCut MF and NG are very similar in core features and, at a technical level, share the same code base. But only PaperCut MF can integrate directly with Multifunction Devices (MFDs) and other hardware to deliver extra features.

Secure Print Release

Ensure documents don't start printing until user released.

Manage Easily

Get full visibility of device activity from anywhere with PaperCut MF.

PaperCut NG has an extensive list of benefits, features, and functionality that is not only easy to install and simple to use - it delivers an almost immediate ROI, no matter the environment.

Site Servers

PaperCut Site Server ensures continuous availability of printing resources to support key business functions over unreliable network links or during unplanned network disruptions.

iOS Printing

PaperCut's iPad Printing support enables printing to all your PaperCut managed printers across your enterprise. As well as enabling printing, the PaperCut iPad App also provides the rich functionality desktop users are used to, such as authentication, balance display and selecting / charging to shared accounts when printing.

Guest Printing

Streamline printing for visitors from their mobile device. Guests simply email an attachment to a designated address for printing with no need to access your wi-fi network or authenticate with your domain.

Print Archiving

PaperCut's Print Archiving empowers approved administrators to browse and review the content of print activity within their environment. Alongside the powerful tracking and reporting functionality built into PaperCut, this gives system administrators a wide range of auditing functions.

Direct Printing

PaperCut makes it easy to print directly from a computer to a printer without a print server. Businesses of any size can track and report on printing keeping configuration, administration and reporting simple.

This alternative PaperCut deployment model simplifies setup for many organizations, alleviating the need to add a print server or change printer and network configuration, saving time and setup costs on install.

Reporting

One-Click Reports
Get access to the most important data in realtime - straight from your web browser, from anywhere on your network

Ad-Hoc Reports
Create reports with custom data by specifying date ranges, filtering and sorting by the data available. Great to give you different perspectives on printing usage

Schedule / Email Reports
Create reports that will be regularly generated and emailed to members of your organization or scheduled to be saved to disk. Great for sending regular reports to managers without even needing to compile it first

Advanced Scripting


If you require more power than PaperCut's in-built filters and restrictions you can leverage Advanced Scripting. To make it easy to get started, advanced scripting comes with dozens of pre-written recipes. Looking at these is a great way to understand their power.

Papercut ng prices

Watermarking

Watermarking is a feature that allows you to print a small portion of text to the top or bottom margin of every page. Typical uses of watermarking include:

• Adding a username to the bottom of every page to help identify the owner.
• Writing job metadata in the footer such as print time, printer or document name.
• Applying a digital signature to help track and verify documents.

Private Cloud

Reduce your organization's capital expenditure by implementing PaperCut in a private cloud hosted server environment.

PaperCut Private Cloud helps your organization save on costs by:

  • Reducing or avoiding hardware purchasing, operating system licensing and associated costs.
  • Easily providing flexibility and scaling according to changing business needs.
  • Delivering a better quality of service, security and management at a cost-effective price.
  • Delegating site duplication, data syncing and recovery planning to the host provider.

Cross Platform

PaperCut is part of the new wave of applications that support all platforms equally. We believe that applications should not dictate your choice of operating systems. Therefore PaperCut supports any combination of print servers and user workstations running under Windows, Linux, Mac or Novell OES that you already have running or might be planning to use in the future.

All platforms are treated equally. Releases are synchronized and all have the same feature set. Mac and Linux systems are native versions, not second class ports of a Windows application! Developing cross-platform software at this level is a large engineering investment. However it is something our development team is proud of and is a testament to our dedication to engineering excellence and modern forward-looking design.

Environmental Impact

One of the primary aims of PaperCut is to reduce printing levels by changing a user's printing behavior. Implementing monitoring, quotas and charging are a good way of drawing a user's attention to their habits. The topic of the environment, global warming, and waste management is currently an area of debate and interest to many. Highlighting the environmental aspects of their activities is another good way to modify a user's behavior.

Mobile Print Release

PaperCut's Mobile Print Release allows users to release held jobs directly from their mobile device (smartphone or tablet). In environments where almost everyone has their own mobile device this is a convenient and cost effective alternative to physical release stations.

Google Cloud Print

PaperCut brings its suite of print management features to organizations integrating Google Cloud Print (GCP).

The combination of PaperCut and GCP enables and facilitates management of users with 'Bring Your Own Devices (BYOD)' - Smartphones, Tablets, Chromebooks and Notebooks that do not connect exclusively to existing print networks.

Find Me Printing

Find Me printing solves the problem of finding the closest printer from a long list of available printers. It is a roaming print service that allows print jobs to find users based on their physical location. It is sometimes referred to as 'Pull Printing', 'Push Printing' or 'Follow Me' printing. It is a great solution for large sites operating a common printer fleet.

Email to Print

Login

A completely platform-independent mobile Print Management solution, Email to Print allows any web-connected mobile and portable device to print documents simply by sending an email to your network's print devices.

Client Billing

Users may allocate printing expenses to Shared Accounts using pop-up client software. Shared Accounts are accessible to multiple users.

User Web Interface

The user web interface provides a range of functionality that empowers users to make the most of PaperCut without requiring intervention from administrators. The user web interface allows users to do what they need for themselves, and quickly get back to what they were doing.

For All Things PaperCut, Contact ACDI Today | info@acd-inc.com | 800.990.2234

I migrated from an Apple MacBook to a Windows 10 laptop earlier in the year. Ever since I’ve been busy grokking the world of PowerShell and .NET Core.

As this little learning project has to fit around all my other activities, it’s very much still a work in progress. But I’ve started to share some of my discoveries with PaperCut colleagues, and thought I’d also share them with you.

Note these tips assume you have some PowerShell experience. However, even if you haven’t used PowerShell , you might find it useful to cut and paste these examples into your TEST PaperCut MF/NG server system to see how they work.

There are a number of PowerShell details I’ve glossed over, so further experimentation and reading are very much encouraged.

Tip 1: Create a PowerShell function to make it easy to call the PaperCut server-command utility

Tip 2: The location of the profile is hard to remember

Tip 3: List the PaperCut MF/NG Windows services

Tip 4: Make frequent use of the Get-Member cmdlet!

Tip 5: Use the Select-Object and Where-Object cmdlets to locate and process data

Tip 6: If life gives you lemons strings, make lemonade custom objects*

Tip 7: Use server-command’s get-group-members subcommand instead of list-user-accounts

Tip 1: Create a PowerShell function to make it easy to call the PaperCut server-command utility

Papercut

Add the following to your PowerShell profile:

Function server-command {
&'C:Program FilesPaperCut MFserverbinwinserver-command.exe' $Args
}

Note the server-command program only runs on the PaperCut MF/NG application server.

Tip 2: The location of the profile is hard to remember

It also varies depending on which version of PowerShell and which operating system you are using. Just use the “magic” variable $PROFILE instead. For example:

code $PROFILE

(I use VS Code to edit my files)

Tip 3: List the PaperCut MF/NG Windows services

You can find a list of the running PaperCut processes with the Get-Service cmdlet as follows:

Get-Service -DisplayName *PaperCut*

The cmdlet displays a limited amount of information by default, so perhaps more usefully.

Get-Service -DisplayName *PaperCut*
| Format-Table -Property Name, Status, StartType

Tip 4: Make frequent use of the Get-Member cmdlet!

The biggest difference between PowerShell and other shells (for instance cmd.exe or Bash) is that PowerShell processes objects, while other shells only process text strings (technically that’s an oversimplification, but it will do for now).

This means that the type of the objects passed between PowerShell commands matters a lot! You can discover the details of an object type using the Get-Member cmdlet.

Let’s compare a couple of the previous examples, but add the Get-Member command to see the output type instead:

Get-Service |
Where-Object -Property DisplayName -like -Value 'PaperCut*' |
Get-Member

And we get:

TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = Services...
Disposed Event System.EventHandler Dispose...
Close Method void Close()
Continue Method void Continue()

But if we run the pipeline …

Get-Service -DisplayName *PaperCut* |
Format-Table -Property Name, Status, StartType |
Get-Member

… the output type is very different:

TypeName: Microsoft.PowerShell.Commands.Internal.Format.FormatStartData
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(Syst...
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
autosizeInfo Property Microsoft.PowerS...
ClassId2e4f51ef21dd47e99d3c952918aff9cd Property string ClassId2e...
groupingEntry Property Microsoft.PowerS...
pageFooterEntry Property Microsoft.PowerS...
pageHeaderEntry Property Microsoft.PowerS...
shapeInfo Property Microsoft.PowerS...
TypeName: Microsoft.PowerShell.Commands.Internal.Format.GroupStartData
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(Syst...
...

So Format-Table creates output suitable for display purposes and should not be used in the middle of a pipeline when data requires further processing. Which leads us to …

Tip 5: Use the Select-Object and Where-Object cmdlets to locate and process data

See the previous tip for some hints on why. Here’s an example:

Get-Service |
Where-Object -Property DisplayName -like -Value 'PaperCut*' |
Select-Object -Property ServiceName,Status,StartType

The output from this pipeline is still a ServiceController type, which can be further processed, so, for example, we can convert it to JSON:

Get-Service |
Where-Object -Property DisplayName -like -Value 'PaperCut*' |
Select-Object -Property ServiceName,Status,StartType |
ConvertTo-Json

Tip 6: If life gives you lemons strings, make lemonade some custom objects*

* With apologies to Elbert Hubbard

The server-command utility usually returns strings, and often we need to make multiple calls to discover the various pieces of information we need. For example, suppose we want to create a list of users with a Boolean flag to indicate if they are internal or external user accounts. This involves using the subcommand list-user-accounts to get a list of all the user names, and then iterating over the list to get the value of the user’s internal property. Note that the property value is returned as a string (“true”/”false”) rather than a Boolean. How can we wrap this to make it more PowerShell compatible?

The “trick” is that we can convert a string “true” or “false into the corresponding Boolean value with the [System.Convert]::ToBoolean method. So to discover if a user is an internal user let’s try:

pc-sc get-user-property <user-name> internal over all the user accounts, and see what types are returned:

pc-sc list-user-accounts |
ForEach-Object {pc-sc get-user-property $_ internal} |
Get-Member

Gives us:

TypeName: System.String

Now use ToBoolean() and convert strings to Boolean after each get-user-property call:

pc-sc list-user-accounts |
ForEach-Object {[System.Convert]::ToBoolean((pc-sc get-user-property $_ internal))} |
Get-Member

(Yes, you really do need the ((.. )) double parentheses).

True

So now I can use Foreach-Object to create a hash table of the user name and a Boolean flag for the internal status:

pc-sc list-user-accounts |
Foreach-Object {
@{
user=$_;
internal=[System.Convert]::ToBoolean((pc-sc get-user-property $_ internal))
}
}
Name Value
---- -----
user ahmed
internal False
user guest-1
internal True

And we use the Get-Member command to get the type:

TypeName: System.Collections.Hashtable

We can now take it one stage further and convert the hash table (name value pairs) into a custom PowerShell object:

pc-sc list-user-accounts |
Foreach-Object {
[PSCustomObject]@{
user=$_;
internal=[System.Convert]::ToBoolean((pc-sc get-user-property $_ internal))
}
}
user internal
---- --------
ahmed False
guest-1 True
guest-2 True
jane False
john False

And Get-Member tells us:

TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
internal NoteProperty bool internal=False
user NoteProperty System.String user=ahmed

So what’s the point? Well, now I can wrap it in a function and use it to solve a number of admin tasks. I’ve extended the above example into a function that returns an object for each user with properties for:

  • username
  • internal flag
  • account balance

Function get-pc-users-balance-and-account-type {
pc-sc list-user-accounts |
Foreach-Object {
[PSCustomObject]@{
user=$_;
internal=
[System.Convert]::ToBoolean((pc-sc get-user-property $_ internal));
balance=
[System.Convert]::ToSingle((pc-sc get-user-property $_ balance));
}
}
}

Papercut Ng : Web Print

And then, for instance, I can use the new function to give an extra $5.50 of credit to all internal users who have a balance less than $5.00:

get-pc-users-balance-and-account-type |
Where-Object {$_.internal -and $_.balance -le 5.0 } |
Foreach-Object {
pc-sc adjust-user-account-balance $_.user 5.5 'By Powershell';
Write-Output '$($_.user) got an extra `$5.5'
}

Tip 7: Use server-command’s get-group-members subcommand instead of list-user-accounts

In tip 6 we found the balance and internal flag for every user account in PaperCut MF/NG, but then only processed internal users. This is often a very small subset of all the users in the system, though. We could be wasting a lot of time retrieving information we never need.

So let’s change the example a bit:

Function get-pc-internal-users-and-balance {
pc-sc
get-group-members '!!Internal Users!!' |
Foreach-Object {
[PSCustomObject]@{
user=$_;
internal=$True;
balance=
[System.Convert]::ToSingle((pc-sc get-user-property $_ balance));
}
}
}

Note I’ve hard-coded the internal flag …

internal=$True;

… so that the original business logic is the same:

get-pc-internal-users-and-balance |
Where-Object {$_.internal -and $_.balance -le 5.0 } |
Foreach-Object {
pc-sc adjust-user-account-balance $_.user 5.5 'By Powershell';
Write-Output '$($_.user) got an extra `$5.5'
}

Papercut Ng Brochure

<Aaaaaand that’s enough PowerShell tips for now — Ed>

In a future post, I’ll show you how you can use the PaperCut MF/NG health API in PowerShell to get more detailed information about the state of your application server (hint, use the Invoke-RestMethod cmdlet).

Papercut Ng App

Future Work: I’m currently trying to work out how to use the XML-RPC web services API directly from PowerShell via .NET Core. The current approach depends on .NET Foundation which will become a legacy framework at some point.

Papercut Ng : Web Print

Comments