Lexmark Universal Driver Changing Ports

4 March 2022

We are getting some reports that the latest version of the Lexmark Universal printer driver is changing the port number of the printer port on Print Distributor virtual printers.

The printer port is used by the virtual printer to redirect the print documents into Print Distributor so if the port is changed then Print Distributor will not receive the document and the print queue will show an error.

You can resolve this issue with these steps:

  1. Right click on the virtual printer.
  2. Select “Printer Properties”.
  3. Go to the “Ports” tab.
  4. Select “Configure Port”.
  5. Find the correct port number from the end of the field “Port Name”.
  6. Enter that number in the field “Port Number”.
  7. Select “OK”.
  8. Select “Close”.

If you change any of the other printer properties then the driver will change the port number so you will need to go through this procedure again.

We have released a small update today which checks for any mis-configured ports on startup and logs an error.

We have also contacted Lexmark to try and find a permanent fix to this problem.

Note: Switching to the Named Pipe based virtual printer also resolves this problem. This virtual printer was labelled as the Legacy printer however we have had a change of heart on that and in the latest release it is back as a fully supported virtual printer.

Load Balancing Algorithms and more

3 January 2022

The 2022 release of Print Distributor is here. This is our annual feature relase, updates through the rest of the year tend to be compatibility updates and bug fixes.

The biggest changes are in the Load Balancing action. There are several new properties that give you finer control over how it spreads the load across a printer pool. You can now tell it to send consecutive documents from the same user to the same printer. This means users won’t see a batch of documents spread across the pool.

There is also a property for selecting the load balancing algorithm. Previously Print Distributor used a round robin algorithm that sent each document to the next printer in turn. This is still the default but you can also choose a random algorithm or a load based algorithm. The load based algorithm attempts to keep the printers usage balanced over time.

The log window has seen some cosmetic improvements and the number of entries has been expanded. Log files now include version information and the logging around sending email and stopping and starting the service have been expanded.

The Run Program action now allows you to pipe the raw print file into stdin of the program you are running and use stdout as the raw print file for subsequent actions. This is useful if you are manipulating the raw print stream in some way. Additionally you can check the return value from the program and optionally throw and error if it is non zero.

The Reprint, SendMail and DirectReprint actions all support the Retry property.

The scope of variables has been tightened up in the PowerShell and Script actions and the action group now has its own scope. To help with this the PowerShell action supports $context.SetValue which checks up the scope chain to see if the value already exists and sets it there if it can, otherwise it sets the value locally. Also the PowerShell method $context.CreateLocalValue always creates a value locally even if it exists further up the scope chain.

Validation of the Accumulate is improved as well as the cleanup of teporary files when it is deleted.

The raw print dialog remembers the last printer used and the list of printers is sorted.

A new modulo filter applies the modulo function on numeric variables such as the serial number. This allows you to constrain the maximum value of the serial number.

We removed another 3rd party dependency (ActiveScriptHost) and replaced it with our own code.

Backing up the project with system info waits longer for msinfo32.exe to complete.

The validation of port numbers on the standard and direct printers is now exhaustive.

When saving a confiuration you can force quit the service if it is blocked.

Fix for superfluous pipe connectivity issue.

Several small UI bugs have been fixed.

As always this is a free update for users of version 5.0 or later.

Ghostscript - 2021 Release

4 January 2021

Print Distributor 2021 is here and includes the following new features:

  • A new Ghostscript reprint action lets you reprint to different types of printer. This will also allow you to print and create a PDF file.
  • The Write File action now has a retry property. This is useful when writing to a network path.
  • A new rule allows you to test against PowerShell expressions.
  • Templates now support embedded PowerShell scripts.

There are also many general enhancements including:

  • GhostScript ps2pdf now creates a temporary PDF file first then moves it into place. This is more reliable and gives better feedback if an error occurs.
  • The “Force Quit” button is enabled when stopping the Print Distributor service.
  • We Added a property to the Load Balancing action to only print to empty printers. This stops all the jobs queueing on the active printer when one printer goes down.
  • Enabling the foreground service to start automatically is now set from a Service menu item.
  • Installing and uninstalling the Windows service changes the foreground service auto start property.
  • The progress form is now DPI independent.
  • Creating printers now uses a two stage initialisation for a smoother user interface.
  • There are various Improvements to logging.
  • Various bug fixes.

Print Distributor is now dependent on the .Net Framework version 4.8.

As always this is a free update for users with version 5.0 and later.