Important Updates for installations and upgrades for PaperCut 25 and higher
This article provides comprehensive instructions for the changes required for the new SQL Drivers to work with PaperCut MF version 25.0 and later. Follow these required steps to
ensure connectivity and proper system behavior. The process includes updating JDBC driver files, modifying configuration settings, and updating related scripts.
NOTE: These changes are REQUIRED.
Prerequisites
Administrator access: You will need administrative privileges to copy files and edit configuration files.
PaperCut MF version 25.0.13.76604 or 26.0.5.76602 or later: These instructions specifically apply to these versions following Sept 2026 vulnerabilities.
Backup: Before making any changes, back up the PaperCut database.
-
Review significant changes: If upgrading from a version older than 24.0.0, review the changes in both version 24 and 25 before proceeding. See:
Step 1: Install or Upgrade PaperCut Application and Secondary Servers.
Download PaperCut Release
-
Ensure you are running the latest supported version of PaperCut MF. Updates often include critical security patches. Follow the official instructions on the PaperCut Update Manual to perform the upgrade.
PaperCut MF version 25.0.13.76604 or 26.0.5.76602 or later download link: PaperCut Downloads
Release Notes for the latest Versions: PaperCut Release Notes
-
Run the installer and follow the prompts.
NOTE: If you are installing PaperCut from scratch, complete the installation before continuing.
Step 2: Install or Upgrade the JDBC Driver
1. Copy the JDBC JAR File
Locate the appropriate JDBC driver JAR file, for example: mssql-jdbc-13.2.1.jre11.jar.
-
Copy this file from your PaperCut installation directory:
Source:
[app server install dir]/server/repository/database-drivers/sqlserver/mssql-jdbc-13.2.1.jre11.jarDestination:
[app server install dir]/server/lib-ext/
Example command (Windows):
copy "C:\Program Files\PaperCut MF\server\repository\database-drivers\sqlserver\mssql-jdbc-13.2.1.jre11.jar" "C:\Program Files\PaperCut MF\server\lib-ext\"2. Copy the Authentication DLL
Locate the JDBC authentication DLL, for example: mssql-jdbc_auth-13.2.1.x64.dll.
-
Copy this file to the following directory:
Source:
[app server install dir]/server/repository/database-drivers/sqlserver/mssql-jdbc_auth-13.2.1.x64.dllDestination:
[app server install dir]/server/bin/win/lib64/
Example command (Windows):
copy "C:\Program Files\PaperCut MF\server\repository\database-drivers\sqlserver\mssql-jdbc_auth-13.2.1.x64.dll" "C:\Program Files\PaperCut MF\server\bin\win\lib64\"To copy both files, you can use this bat file: Copy SQL Driver Batch
Step 3: Update the JDBC Connection String
Update the JDBC connection string in the server.properties file to include additional parameters for encryption and certificate trust.
NOTE: PAY CLOSE ATTENTION TO THE FULL URL AND DRIVER. OLDER VERSIONS MIGHT VARY. MAKE SURE IT IS EXACT OUTSIDE THE LOCALHOST/SERVERNAME.
1. Edit the server.properties File
Navigate to [app server install dir]/server/.
Open server.properties in a text editor with administrator privileges.
Find the line that begins with database.driver=
-
Confirm the driver is com.microsoft.sqlserver.jdbc.SQLServerDriver (NOTE: If the customer is an older install, then this would be wrong. This does not mean they currently have an old version, but originally installed prior to the drivers.)
Example: database.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
Find the line that begins with database.url=.
-
Confirm the URL is correct and append the following to the end of the line (if not already present):
;encrypt=false;trustServerCertificate=trueExample: database.url=jdbc:sqlserver://localhost:1433;databaseName=papercut;encrypt=false;trustServerCertificate=true
Note the SQL server name if it is on a different server before copying/pasting anything above.
Save the file.
Step 4: Update External Card Lookup Configurations
For our TBS customers using TBS Kiosks/cPads, we use the external database lookup function for Card ID. PaperCut states that you now need to explicitly enable the feature by adding the following to security.properties in the PaperCut MF/server directory.
-
Add the following text to the file at the bottom of the file, like so:
NOTE: New Installs will already have this, and you will just need to set to =Y.
### External Database User Lookup ###
# Controls if external database user lookup for card/ID numbers is enabled.
# When enabled, card numbers swiped or entered at devices can be looked up in an external database.
# Default is N.
# Note: The Application Server must be restarted after modifying any of these settings.
# To enable and configure this feature, set the following keys:
security.card-number-lookup.enabled=Y
security.card-number-lookup.db-driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
security.card-number-lookup.db-url=jdbc:sqlserver://localhost:1433;databaseName=papercut;encrypt=false;trustServerCertificate=true
security.card-number-lookup.db-username=sa
security.card-number-lookup.db-password=PASSWORDHERE
security.card-number-lookup.id-to-username-sql=select user_name from dbo.tbl_user where deleted = 'N' and user_name = {cardnumber}
security.card-number-lookup.id-to-username-sql.user-mapping=USERNAMEStep 5: Update Printer Scripts for MyPC Printers
To ensure pop-up notifications work correctly for public PC printing via MyPC, update your printer scripts. If you skip this step, users will not receive the necessary pop-up prompts, and all internal printing will be 'DOWN'. As of today, this is the only script that needs to be updated. All other scripts (wireless, scanez, catalog, prompt for username, etc) do not require an update.
Also note any custom message: The customer might have a custom message or script they are using. Update the script below with their message instead of the default message. This would be the ("<html><span style='font-size:17pt;'>Please visit any Print Release Station to retrieve your Print Job!</span></html>") in the script below.
Locate your printer script file(s), such as POPUP_script_MyPC.txt, in your installer’s scripts folder or HERE.
Replace the contents with the following up-to-date script:
function printJobHook(inputs, actions) {
if (!inputs.job.isAnalysisComplete) {
actions.log.debug("Job analysis not complete, exiting.");
return;
}
// Debug inputs and actions
actions.log.debug("inputs.job: " + JSON.stringify(inputs.job));
actions.log.debug("actions.client: " + JSON.stringify(actions.client));
// Inform the user of their classification (fixed HTML string)
var response = actions.client.promptOKCancel("<html><span style='font-size:17pt;'>Please visit any Print Release Station to retrieve your Print Job!</span></html>");
if (response == "OK") {
// Add your action code here for clicking OK
actions.log.debug("User clicked OK");
} else if (response == "CANCEL") {
// Add your action code here for clicking Cancel
actions.log.debug("User clicked Cancel");
actions.job.cancel();
} else if (response == "TIMEOUT") {
// Add your action code here for timeout
actions.log.debug("Prompt timed out");
actions.job.cancel();
}
}Click APPLY.
Step 6: Restart PaperCut Services
-
Restart the PaperCut Application Server service to apply changes.
If upgrading from older versions, stop and disable any PaperCut service you don't use. Example below of the typical library setup:
After restarting, log in to the PaperCut portal and verify the database connection works as expected.
Step 7: Upgrade GhostTrap
It is always good practise to upgrade GhostTrap when upgrading PaperCut. This is no different. Do this on the Primary and Secondary servers.
Step 8: TEST, TEST, TEST
TEST the pop-up and Card ID Lookup.
TEST POPUP Script: Launch pc-client.exe on the server and print to a MyPC Printer. This will confirm the pop-up is working.
TEST CARD ID Lookup: If the popup asks for Card ID and not username/password, then this is the External Card Lookup, and you are testing both at the same time. If the popup asks for username/password, the best test is to log into a cPAD using VNC Viewer. This would be the only other test to confirm the external card lookup is working.
