016565: Modification to printer configuration - allow printing by user


It is possible to map courier's specified printers through to Windows printers for named users.


The modifications made to allow the mapping of courier specific printers for named users involves a new System Data option called "Courier Printer Mapping". This is where settings can be stored within the new "COURIER_PRINTER_MAPPING" table, for combinations of Courier and User to specify the name of the printer, which will used to print labels.


  • Without the new functionality enabled, or if no mapping is available for the courier/user combination being used, then the system will revert to using the previous functionality of using the printer specified in the courier setup.
  • This functionality works with the following printer types:
    • CourierNeo type couriers, which have their setup details within the "System Data" part of Khaos Control rather than the KSS ini options.
    • ParcelforceExpresslinkV5
  • This does not work with Ship@ease Neo.


In addition to the automatic configuration done during the update, the following configurations are also required.

  1. Enable the functionality within [ System Operations | Edit System Values | Couriers | General ]:

    System Values Couriers user mapping

  2. Configure the courier printers by user in [ System Data | Courier Printer Mapping ]. The information stored is as follows :
    • Courier: the name of the courier with Khaos Control which the setting relates to.
    • User: the name of the user used to log into Khaos Control.
    • Printer Name: the name of the Printer which will be used to print the labels for this courier and user combination.
    • Document Printer Name: the name of the printer to use for any other documents that require printing, i.e. if you have a specific printer for labels that would use the "Printer name" column and then the secondary printer for printing any other documents (customs/Manifests) would use the "Document Printer Name"


  1. The name entered for the printer has to exactly match the name of the printer including capitalisation, with the following exceptions:
    • Any spaces entered within the "Printer name", before or after the remaining text will be ignored.
    • It is possible to use the * symbol as a wildcard, for example, searching for Printer1* will look to use any printer with a name that starts with Printer1.

ParcelforceExpresslinkV5 options

To use this development with the ParcelforceExpresslinkV5 courier the following configuration settings are required in the [[System Operations menu|[ System Operations | Edit .ini Options | CourierExport ] section:

  • PDFDocumentAction: "PRINT"
  • PDFDocumentPrintParameters: /N /T "<%PDF_FILE%>" "<%PRINTER_NAME%>"
  • PDFPrintApplication: C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe (or the full file path of your adobe acrobat reader application).
  • PDFPrintParameters: /N /T "<%PDF_FILE%>" "<%PRINTER_NAME%>"

In the [ System Data | Courier Printer Mapping ] screen the following modifications need to be made:

  1. Press Alt+E or click the green triangle icon is the buttonbar's EDIT button to enter edit mode.
  2. Press F3 or click the NEW ITEM button has an icon that shows two sheets of paper (identified by having the top right corner folded down), arranged diagonally on the icon from top left to bottom right to add a new item.
  3. Set the "Courier" to be the ParcelForceExpresslinkV5 Courier.
  4. Set the Preferred user using the F4 menu.
  5. In the "Printer Name" & "Document Printer Name" enter the full server path and server name of the printer, i.e. "//printerserver/Printerforlabels" or "//printerserver/Printerfordocuments"
  6. Press Ctrl+S or click the disk icon is the button bar's SAVE button to save.

Note: Due to Adobe Acrobat reader having issues with reading printer names the format "Printer on PrinterOnServer" will not work with the ParcelforceExpresslink V5 courier when used in the [ System Data | Courier Printer Mapping ] screen.


After applying the above Configuration, typical steps for usage would include:

  1. A user accessing Khaos Control, has been allocated "Printer1 (instance 3)".
  2. Within Khaos Control this user has a setting for the courier they need to use to send out an order, which is Printer1*
  3. As a result when they assign the order to the courier, the label returned from the courier is printed using "Printer1 (instance 3)".

See Also

Did you find this article helpful?