Changelog

All notable changes to the BradyPrintSdk project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0] - 2026-05-20

Added

  • New PrinterSettingKey values for querying supply dimensions and smart-supply status:
  • PRINTER_SETTING_SUPPLY_WIDTH (Int) — supply width in thousandths of an inch; use with GetPrinterSettingInt.
  • PRINTER_SETTING_SUPPLY_HEIGHT (Int) — supply height in thousandths of an inch; use with GetPrinterSettingInt.
  • PRINTER_SETTING_SUPPLY_IS_SMART (Bool) — whether the loaded supply is a smart supply; use with GetPrinterSettingBool.

  • New PrinterSettingKey value for querying RFID supply status:

  • PRINTER_SETTING_SUPPLY_IS_RFID (Bool) — whether the currently loaded supply is RFID-enabled; use with GetPrinterSettingBool. Gated by PRINTER_FEATURE_RFID_ENCODING.

  • New JobSettingKey values for print job configuration: JOB_SETTING_JOB_NAME, JOB_SETTING_NUMBER_OF_COPIES, JOB_SETTING_ROTATE_180, JOB_SETTING_COLLATE, JOB_SETTING_CUTTER_MODE, JOB_SETTING_CUT_AFTER_SET_LENGTH, JOB_SETTING_PERF_AFTER_SET_LENGTH. These keys can be used with the generic SetPrintJobSettingXxx / GetPrintJobSettingXxx functions.

  • New PerfCutter value in the PostPrintAccessory enum for printers equipped with a perforated cutter accessory.

  • New CutterMode values for perforated cutting: PerfCutEndOfJob, PerfCutAfterSet, and PerfAndFullCutAfterSet. These modes are only supported when the PerfCutter post-print accessory is installed.

  • New GetSupportedCutterModes function that returns a bitmask of CutterMode values that are valid for the connected printer given its capabilities and the currently installed post-print accessory. Bit N in the output is set if CutterMode value N is valid. Call RefreshPrinterSettings first to ensure the accessory state is current.

  • New connection management functions:

  • IsPrinterConnected — checks whether a printer handle is currently connected.
  • DisconnectPrinter — disconnects a connected printer while preserving active print jobs and stored connection parameters.
  • ReconnectPrinter — reconnects a previously connected printer using its stored connection parameters from the last successful ConnectTcpPrinter or ConnectUsbPrinter call.

  • ConnectTcpPrinter and ConnectUsbPrinter now return BRADY_SDK_ERROR_EXISTING_CONNECTION when called on a printer that is already connected. Callers must call DisconnectPrinter before establishing a new connection.

  • DestroyPrinter now automatically disconnects the printer before freeing resources.

Removed

  • GetSupplyWidth — use GetPrinterSettingInt(PRINTER_SETTING_SUPPLY_WIDTH, ...) instead.
  • GetSupplyHeight — use GetPrinterSettingInt(PRINTER_SETTING_SUPPLY_HEIGHT, ...) instead.
  • GetIsSmartSupply — use GetPrinterSettingBool(PRINTER_SETTING_SUPPLY_IS_SMART, ...) instead.
  • SetPrintJobName — use SetPrintJobSettingString(JOB_SETTING_JOB_NAME, ...) instead.
  • SetNumberOfCopies — use SetPrintJobSettingInt(JOB_SETTING_NUMBER_OF_COPIES, ...) instead.
  • SetRotate180 — use SetPrintJobSettingBool(JOB_SETTING_ROTATE_180, ...) instead.
  • SetCollate — use SetPrintJobSettingBool(JOB_SETTING_COLLATE, ...) instead.
  • SetCutOptions — use SetPrintJobSettingEnum(JOB_SETTING_CUTTER_MODE, ...) and SetPrintJobSettingInt(JOB_SETTING_CUT_AFTER_SET_LENGTH, ...) instead.

Changed

  • BREAKING: The NuGet package has been renamed from BradyPrintSdk to BradyCorp.Desktop.SDK. Update your package references accordingly.
  • BREAKING (Header Layout): The public API has been split across multiple domain-specific headers behind a new umbrella header BradyPrintSdk.h. Consumers should update their includes from #include "BradyPrintSdkLib.h" to #include "BradyPrintSdk.h". The legacy BradyPrintSdkLib.h is retained as a deprecated redirect and will be removed in a future release. New headers:
  • BradySdkStatus.h — status codes and log levels.
  • BradyPrintSdkCore.h — handle types, SDK initialization, printer lifecycle, analytics.
  • BradyPrintSdkConnection.h — TCP/IP and USB connection management.
  • BradyPrintSdkSettings.h — printer features, printer settings, and job settings.
  • BradyPrintSdkPrintJob.h — print job creation, page management, and submission.
  • BradyPrintSdkRfid.h — RFID encoding operations.
  • BREAKING: Renamed PRINTER_SETTING_IS_RFID_ENABLED to PRINTER_SETTING_IS_RFID_CAPABLE. The setting continues to report whether the connected printer has RFID encoder hardware installed.
  • BREAKING: Renamed BRADY_SDK_ERROR_NOT_CONNECTED to BRADY_SDK_ERROR_NO_CONNECTION. The numeric value (-3) is unchanged.
  • BREAKING: Enforced strict C compliance in core library headers by removing unintentional C++ syntax.
  • BREAKING (Native): Removed default arguments from the following functions. Consumers must now pass these arguments explicitly:
  • SetLogPath
  • ConnectTcpPrinter (previously defaulted to port 9100)
  • BREAKING (API Signature): Converted C++ reference (&) output parameters to standard C pointers (*) across the API to ensure standard C ABI compatibility. Affected functions:
  • CheckFeatureSupport
  • GetPrinterSettingInt, GetPrinterSettingEnum, GetPrinterSettingBool
  • CreatePrintJob
  • GetPrintJobSettingInt, GetPrintJobSettingEnum, GetPrintJobSettingBool
  • Migration (C/C++): When calling these functions, callers must now explicitly pass the memory address using the address-of operator (e.g., &myVariable instead of myVariable).