ThermalLabel Web API for Docker

On-premise REST API to Generate advanced barcode labels supporting data merging, expressions/formulas, and conversion to printer commands and known file formats


Key Features

  On-premise REST API running Linux Docker container
  Zebra-compatible Thermal Printers ZPL® or EPL®
  Linear & 2D Barcodes, Unicode Text, Images, RFID
  Preview & Export to raster image formats + Adobe PDF
  Data Binding, Counters, Masking & XML/JSON Templates

  Download   Buy

Advanced Barcode Label Generator for Docker

ThermalLabel Web API can be used for designing from simple to complex labels layout supporting Texts, Barcodes, Graphics and Images, RFID Tags, and Shapes like circles, ellipses, rectangles, and lines. It provides an unified object model which will allow you to create one label design and export/convert it to either raw Zebra, EPSON & Honeywell-Intermec, HP PCL printer commands as well as to image or document formats like JPEG/JPG, PNG, PCX, SVG, HTML, and PDF!

Postman Screenshots

QR Code, Code 128, Label
QR Code Color Label
Avery Multicolumn Barcode Labels
Full Color Label

Features at a Glance

 Zebra, EPSON & Honeywell-Intermec Compatible

ThermalLabel Web API converts label designs or templates to Zebra-compatible Thermal Printers supporting ZPL® or ZPL II® (Zebra Programming Language) or EPL (Eltron Programming Language), EPSON printers supporting ESC/POS®, HP printers supporting PCL® as well as Honeywell-Intermec printers supporting Fingerprint® commands.

   Full Color Label

In addition to create monochrome labels for thermal printers, ThermalLabel Web API also supports full color label design and generation and can be converted to JPEG/JPG, PNG, PCX, SVG, HTML, and PDF formats.

fx 100+ Expressions/Formulas

Expressions/Formulas can include a combination of variables, constants, operators, functions, and references to label Items as well as to data fields in a data merging/binding scenario.
Expressions are set to any Item in the label to dynamically set the Item's content based on the expressions result.
ThermalLabel Web API ships with 100+ built-in well-known functions.


 Data Merging/Binding Support

ThermalLabel Web API was designed considering Data Merging/Binding scenarios which mean you can merge/bind text and barcode items to XML & JSON Array data sources.

 Counters - Print Range

Counters allow you to index data items by a selected increment or decrement value, making the data items increase or decrease by a specified value each time a label is printed. This feature allows scenarios like generating 10 barcode labels for values ranging from "ABC01" to "ABC10".

 Data Masking & Formatting

Data Masking allows you to serialize data items by specifying a Mask string as well as an increment string. It's useful for batch printing scenarios when serialized items are involved. This feature allows scenarios like generating a barcode label for a serialized product from "MDL-001/X" to "MDL-010/X" (i.e. the sequence will be MDL-001/X, MDL-002/X, MDL-003/X, ..., MDL-010/X).

Text, Pictures, Shapes & RFID

Text items supporting multi-line, content alignment, sizing, Unicode, RTL (Hebrew, Arabic, etc.), Custom and installed TTF files, White Text On Black, rotation, horizontal alignment, counters, and text masking.

Graphic, Image & Picture items supporting image formats like JPG/JPEG, and PNG; monochrome conversion features like Threshold and Floyd-Steinberg algorithms and reversing; sources image like files, base64 as well as binary content.

Shape items supporting Tables/Grids, lines (horizontal, vertical, and diagonals), rectangles with rounded corners, circles and ellipses.

Repeater items supporting fixed count and data bound items repetition.

RFID items supporting ASCII, HEX as well as EPC Data Structures. (NOTE: Only available for ZPL & Fingerprint printers)

First-class Barcode Support Out-of-the-box

ThermalLabel Web API supports most popular Linear (1D), Postal, Component Composite & 2D Barcode Symbologies including Code 39, Code 128, GS1-128, GS1 DataBar (RSS-14), EAN 13 & UPC, Postal (USPS, British Royal Mail, Australia Post, DHL, FedEx), Data Matrix (including GS1 & DMRE versions), QR Code (including GS1 version), PDF 417, Aztec Code, UPS MaxiCode, Chinese Han Xin Code, IFA PPN, all EAN/UPC Composite Barcodes (CC-A, CC-B & CC-C), DotCode and many more barcode standards

GS1-AIM-ISO/IEC Compliance

Our barcode algorithms were written by following the official specifications of each barcode symbology. Our barcode engine within ThermalLabel SDK provides you with exclusive features like auto-checksum, data validation, Bar Width Adjustment (BWA) for linear & 2D symbols, auto-encoding methods for shortest barcode symbol generation.

XML/JSON-based Label Templates

ThermalLabel Web API handles label designs in a plain & simple XML/JSON-based format. These string representation of the thermal label in XML or JSON formats allow you to save or store them in any kind of data source be it Database, file on disk, memory stream, etc. The XML/JSON Label Template can be generated in you preferred programming language or visually through the ThermalLabel Web Editor Add-on.


ThermalLabel Web Editor Add-on

Design labels from Windows, Linux, Mac & Android!

ThermalLabel Web Editor Add-on is a first-class barcode label designer component for any website which empowers your WebApps by providing an end-user visual label editor!

With the ThermalLabel Web Editor component, you can allow your end-users to create, load, edit and save ThermalLabel objects in the form of XML/JSON template files definition from Windows, Linux, Mac & Android Clients with latest browsers!

 Donwload ThermalLabel Web Editor sample project...

IMPORTANT: This label editor is optional and sold separately. You can use the Web API without needing the Web label editor.

Overview

Designed by following some of the REST principles, ThermalLabel Web API for Docker responds to simple HTTP GET & POST requests by specifying the right parameters through a JSON object in the request body, returning the output processing in the raw commands, image or document formats specified through the Accept header.

Help Doc Topics


Download and run ThermalLabel Web API for Docker

ThermalLabel Web API for Docker is available at Docker Hub registry.

  • To pull/download the Docker image, please type the following from a Terminal:

    AMD
    docker pull neodynamic/thermallabelwebapi:4.0.4
    ARM
    docker pull neodynamic/thermallabelwebapi:4.0.4-arm64
  • To run the Docker image, please type the following from a Terminal:

    AMD
    docker run -it --rm -p 8080:80 neodynamic/thermallabelwebapi:4.0.4
    ARM
    docker run -it --rm -p 8080:80 neodynamic/thermallabelwebapi:4.0.4-arm64

Run ThermalLabel WebAPI on a Custom Port

By default, our Docker image exposes ports 80 and 443 only. If you want to expose and use another different port, then do the following.

  1. Let's suppose you want to use port 12345. Create a new Dockerfile and edit it by pasting the following content:

                                    
    FROM neodynamic/thermallabelwebapi:4.0.4
    EXPOSE 12345
                                    
                                
  2. Save that file and then build it...
    docker build -t neodynamic/my_custom_thermallabelwebapi:4.0.4 .
  3. Now run the new custom Docker image with the following params:
    docker run -it --rm -p 12345:12345 -e "ASPNETCORE_URLS=http://+:12345" neodynamic/my_custom_thermallabelwebapi:4.0.4

The Accept Header

The desired output rendering format must be specified through the Accept header. The supported formats are the following:

Accept Description
image/png Returns the first rendered label in PNG format. If the specified params generate more than one label, then you should specify image/png+json or image/png+zip values instead.
image/jpeg Returns the first rendered label in JPEG/JPG format. If the specified params generate more than one label, then you should specify image/jpeg+json or image/jpeg+zip values instead.
image/svg+xml Returns all the rendered labels in SVG format.
application/pdf Returns all the rendered labels as a single PDF document. The PDF file will contain as many pages as rendered labels.
image/vnd.zbrush.pcx Returns the first rendered label in PCX format. If the specified params generate more than one label, then you should specify image/vnd.zbrush.pcx+json or image/vnd.zbrush.pcx+zip values instead.
text/html Returns all the rendered labels in HTML format.
application/vnd.zpl Returns all the rendered labels in Zebra ZPL format.
application/vnd.epl Returns all the rendered labels in Zebra EPL format.
application/vnd.fingerprint Returns all the rendered labels in Honeywell-Intermec Fingerprint format.
application/vnd.escpos Returns all the rendered labels in EPSON ESC/POS format.
image/png+json Returns all the rendered labels as a JSON Array containing each label in Base64 PNG Data URI scheme. The returned JSON Object will have this structure: {labels:["data:image/png;base64,<BASE64-STRING>", "data:image/png;base64,<BASE64-STRING>", ... ]}
image/jpeg+json Returns all the rendered labels as a JSON Array containing each label in Base64 JPEG Data URI scheme. The returned JSON Object will have this structure: {labels:["data:image/jpeg;base64,<BASE64-STRING>", "data:image/jpeg;base64,<BASE64-STRING>", ... ]}
image/svg+xml+json Returns all the rendered labels as a JSON Array containing each label in Base64 SVG Data URI scheme. The returned JSON Object will have this structure: {labels:["data:image/svg+xml;base64,<BASE64-STRING>", "data:image/svg+xml;base64,<BASE64-STRING>", ... ]}
application/pdf+json Returns all the rendered labels as a JSON Array containing a single PDF in Base64 Data URI scheme. The PDF file will contain as many pages as rendered labels. The returned JSON Object will have this structure: {labels:["data:application/pdf;base64,<BASE64-STRING>"]}
image/vnd.zbrush.pcx+json Returns all the rendered labels as a JSON Array containing each label in Base64 PCX Data URI scheme. {labels:["data:image/vnd.zbrush.pcx;base64,<BASE64-STRING>", "data:image/vnd.zbrush.pcx;base64,<BASE64-STRING>", ... ]}
text/html+json Returns all the rendered labels as a JSON Array containing each label in Base64 HTML Data URI scheme. The returned JSON Object will have this structure: {labels:["data:text/html;base64,<BASE64-STRING>", "data:text/html;base64,<BASE64-STRING>", ... ]}
application/vnd.zpl+json Returns all the rendered labels as a JSON Array containing each label in Base64 ZPL Data URI scheme. {labels:["data:application/vnd.zpl;base64,<BASE64-STRING>", "data:application/vnd.zpl;base64,<BASE64-STRING>", ... ]}
application/vnd.epl+json Returns all the rendered labels as a JSON Array containing each label in Base64 EPL Data URI scheme. {labels:["data:application/vnd.epl;base64,<BASE64-STRING>", "data:application/vnd.epl;base64,<BASE64-STRING>", ... ]}
application/vnd.fingerprint+json Returns all the rendered labels as a JSON Array containing each label in Base64 Fingerprint Data URI scheme. {labels:["data:application/vnd.fingerprint;base64,<BASE64-STRING>", "data:application/vnd.fingerprint;base64,<BASE64-STRING>", ... ]}
application/vnd.escpos+json Returns all the rendered labels as a JSON Array containing each label in Base64 ESC/POS Data URI scheme. {labels:["data:application/vnd.escpos;base64,<BASE64-STRING>", "data:application/vnd.escpos;base64,<BASE64-STRING>", ... ]}
image/png+zip Returns all the rendered labels as a ZIP file containing each label in PNG format. Each file name is named to [DataTime-Ticks].png
image/jpeg+zip Returns all the rendered labels as a ZIP file containing each label in JPEG/JPG format. Each file name is named to [DataTime-Ticks].jpg
image/svg+xml+zip Returns all the rendered labels as a ZIP file containing a single SVG. The SVG file will contain as many pages as rendered labels. [DataTime-Ticks].svg
application/pdf+zip Returns all the rendered labels as a ZIP file containing a single PDF. The PDF file will contain as many pages as rendered labels. [DataTime-Ticks].pdf
image/vnd.zbrush.pcx+zip Returns all the rendered labels as a ZIP file containing each label in PCX format. Each file name is named to [DataTime-Ticks].pcx
text/html+zip Returns all the rendered labels as a ZIP file containing a single HTML doc. The HTML file will contain as many pages as rendered labels. [DataTime-Ticks].html
application/vnd.zpl+zip Returns all the rendered labels as a ZIP file containing a single ZPL file. The ZPL file will contain as many pages as rendered labels. [DataTime-Ticks].zpl
application/vnd.epl+zip Returns all the rendered labels as a ZIP file containing a single EPL file. The EPL file will contain as many pages as rendered labels. [DataTime-Ticks].epl
application/vnd.fingerprint+zip Returns all the rendered labels as a ZIP file containing a single Fingerprint file. The Fingerprint file will contain as many pages as rendered labels. [DataTime-Ticks].fingerprint
application/vnd.escpos+zip Returns all the rendered labels as a ZIP file containing a single ESC/POS file. The ESC/POS file will contain as many pages as rendered labels. [DataTime-Ticks].escpos

Web API Doc


How to configure Custom TTF Fonts

Most labels that are designed might contain some texts, and these texts need to be rendered by using a given set of fonts. To make these fonts available for the ThermalLabel Web API for Docker to preview, render and convert the labels to the target format, then a special configuration must be performed.

NOTE: Fonts that are added to the ThermalLabel Web API for Docker remain the exclusive property of their specific owners and require a license from their owners.

The following steps show how to configure the ThermalLabel Web API for Docker to add support for Arial Unicode TTF font for rendering texts in different languages.

Custom Fonts Configuration Steps

  • Be sure you download the Arial Unicode font (in some Windows systems, that font is located at c:\Windows\Fonts\ARIALUNI.TTF). Remember that any added font remain the exclusive property of their specific owners and require a license from their owners.
  • Once you have the ARIALUNI.TTF font file, copy it to the Linux box where the ThermalLabel Web API instance will be running on.
  • In the home dir of your Linux box, create the following directoy: MyThermalLabelSettings
  • Copy the ARIALUNI.TTF to the MyThermalLabelSettings directory
  • Create a plain text file and name it to fonts.json and then write or copy/paste the following content:

    
    [
      {
        "name": "Arial Unicode",
        "fileName": "ARIALUNI.TTF"
      }                                
    ]
                                

    This is a JSON Array for each font you want to upload to the virtual printer storage. Each JSON object representing a given custom font must be specified with the name of the font (which is just for your identification only) and the fileName which points to the physical font file.

  • Finally, to make the custom fonts available in the ThermalLabel Web API instance, we have to mount a volume to the instance in this way:

    AMD
    docker run -it -v ~/MyThermalLabelSettings:/app/Config --rm -p 8080:80 neodynamic/thermallabelwebapi:4.0.4
    ARM
    docker run -it -v ~/MyThermalLabelSettings:/app/Config --rm -p 8080:80 neodynamic/thermallabelwebapi:4.0.4-arm64

Licensing

On-Premise - Full Deployment Control

ThermalLabel Web API is licensed for Private On-Premise environments giving you full control on the infrastructure where our product will run on. Please refer to Licensing model and prices...

 License Registration

When you buy a commercial license of ThermalLabel Web API for Docker, you are provided with license information (LICENSE_OWNER & LICENSE_KEY for the Web API - EDITOR_LICENSE_OWNER & EDITOR_LICENSE_KEY for the Web Label Editor) to register the product. The license information must be specified to the Docker image as environment variables as folows:

AMD
docker run -it --rm -e "LICENSE_OWNER=YOUR-COMPANY-NAME" -e "LICENSE_KEY=YOUR_KEY" -e "EDITOR_LICENSE_OWNER=YOUR-COMPANY-NAME" -e "EDITOR_LICENSE_KEY=YOUR_KEY" -p 8080:80 neodynamic/thermallabelwebapi:4.0.4
ARM
docker run -it --rm -e "LICENSE_OWNER=YOUR-COMPANY-NAME" -e "LICENSE_KEY=YOUR_KEY" -e "EDITOR_LICENSE_OWNER=YOUR-COMPANY-NAME" -e "EDITOR_LICENSE_KEY=YOUR_KEY" -p 8080:80 neodynamic/thermallabelwebapi:4.0.4-arm64

 Evaluation Mode

The Trial Version of ThermalLabel Web API for Docker is fully functional and has no expiry date. However, while in TRIAL mode, the output rendering has the following limitations:


  • SVG barcode image formats require a license key, a blank image will be generated in TRIAL mode.
  • A TRIAL stamp will be rendered at the top of the rendering output.

 Want to try ThermalLabel Web API for Docker without TRIAL watermark?

We offer you a 30-day Evaluation License Key which will allow you to test the ThermalLabel Web API for Docker in fully-functional mode for 30 days! When the 30-day Evaluation License Key expires, the ThermalLabel Web API for Docker behavior backs to Trial mode. Request your 30-day Evaluation License Key now...

 Change Log

  • 4.0.4 2024-02-15
    • Fixed! TextItem FontSizeScaling sizing hangs for white space content.

  • 4.0.3 2024-02-06
    • Fixed! Malformed Global expressions when exporting labels to XML or JSON formats.
    • Fixed! Allow URLs as a valid data source of an ImageItem in a data binding scenario.

  • 4.0.2 2024-01-05
    • Fixed! International text rendering like Hindi.

  • 4.0.1 2023-11-14
    • Fixed! PCL commands generation.

  • 4.0 2023-11-10
    • New! BarcodeItem support for printing (when possible) as a resident printer command through the PrintAsResidentElement. For ZPL commands only.
    • New! Added QRCodeMask property to BarcodeItem class.
    • New! Added TextVerticalAlignment property to TextItem class.
    • New! Support for RTL text when using Font.NameAtPrinterStorage.
    • New! Added support for generating HP PCL raw commands.

  • 3.0.12 2023-10-16
    • New! BarcodeItem support for GS1-128 AI 715 - National Healthcare Reimbursement Number (NHRN): United States of America FDA.
    • Fixed! Barcode sizing in some special cases.
    • Fixed! Barcode rMQR data encoding when using H ECC.
    • Fixed! Barcode multiline text below the symbol was rendered as single text line.
    • Fixed! Custom font files settings.

  • 3.0.11 2023-10-09
    • Fixed! DPI param was ignored when converting labels to raw printer commands.

  • 3.0.10 2023-08-07
    • New! Added ignoreExpressions and ignoreDataFields params to ThumbnailData.

  • 3.0.9 2023-07-26
    • Fixed! word-wrap text when ParagraphScaling is involved.

  • 3.0.8 2023-07-17
    • New! TextSizing ParagraphScalingAndFill enum option.
    • Fixed! Barcode offset rendering when FitProportional sizing is enabled.

  • 3.0.7 2023-05-31
    • Fixed! Unhandled exception in BarcodeItem when AutoSize sizing is enabled and an invalid data to encode is specified.

  • 3.0.6 2023-05-10
    • Fixed! Punctuation char rendering position for RTL text.

  • 3.0.5 2023-05-06
    • Fixed! Text alignment offset when mixed RTL and non-RTL content in a single line is specified.

  • 3.0.4 2023-04-28
    • New! Right-to-Left (RTL) text autodetection for TextItem objects.
    • Fixed! Text alignment offset when RTL and single lines are specified.

  • 3.0.3 2023-04-21
    • Fixed! TextItem content dissapears for single lines and Right-to-Left languages.

  • 3.0.2 2023-04-03
    • Fixed! TextItem content dissapears for single lines and Right or Center alignments.

  • 3.0.1 2023-03-27
    • Fixed! Underline and strikethrough font settings were not rendered for single line texts.
    • Fixed! Strikethrough font setting was rendered in the wrong position.

  • 3.0 2023-01-03
    • New! RepeaterItem supporting fixed count and data bound items repetition.
    • New! TableShapeItem supporting table layout drawing.
    • New! Added OuterArc option to TextSizing to allow printing single line of arc-shaped text inside an ellipse.
    • New! Added Multiline prop to TextItem. Can be set to False to force single line texts in the editors.
    • New! Added support for embedding fonts in the XML and JSON label templates.

  • 2.0.11 2022-09-22
    • Fixed! Label rotation when exporting to PDF or images in multi-label scenarios.
    • Fixed! copies or replicates settings were not considered when generating multicolum labels type.
    • Fixed! NativePrinterFontB wrong metadata values.

  • 2.0.10 2022-09-01
    • Fixed! Margin for Sheet Labels does not work correctly if any other unit other than Inch is specified.

  • 2.0.9 2022-08-31
    • Fixed! Margin for Sheet Labels was ignored if single label was present in the whole doc.

  • 2.0.8 2022-08-25
    • Fixed! TextItem GetAutoSize method where maxWidth param was not handled correctly.
    • Fixed! font height issue in some special cases under Linux.
    • Fixed! font fallback.

  • 2.0.7 2022-08-23
    • Fixed! TextItem print location when it is rotated and print orientation is set to 270 degrees.

  • 2.0.6 2022-08-19
    • Fixed! ZPL text location when printing at 270 degrees.
    • Fixed! Custom font handling.

  • 2.0.5 2022-08-15
    • Fixed! Exporting label to PDF vector format generates duplicate blank page.

  • 2.0.4 2022-08-03
    • Fixed! BarcodeItem EAN/UPC human readable text location when Sizing prop is set to FitProportional in raw printer commands.
    • Fixed! RTL text offset when left aligned.

  • 2.0.3 2022-07-27
    • Fixed! Set missing objects in expressions to null. Use IsNothing func to work with them.

  • 2.0.2 2022-07-25
    • Fixed! Wrong data field in expression throws an expcetion.
    • Fixed! Font style when rendering RTL text.
    • Fixed! Arabic shaping ligature when enabling RTL on TextItem.
    • Fixed! RTL text auto size calculation.
    • Fixed! Font fallback should not be performed when custom font file is involved.
    • Fixed! NativePrinterFontA size when exporting to Fingerprint commands.
    • Fixed! BarcodeItem BackColor setting was ignored.
    • Improved! Reduced 2D barcode modules rendering when exporting to raw printer commands.

  • 2.0.1 2022-03-11
    • CRITICAL Fixed! QR Code Auto Encoding - Wrong Numeric Data Bits calculation.
    • Fixed! Aztec Code runes encoding.

  • 2.0 2022-02-08
    • New! Added Pages collection prop to ThermalLabel to support multi-page labels concept.
    • New! Added DesignBackgroundImage prop to ThermalLabel to specify a non-printing background image (in PNG format) that assists you in the design of your labels through the visual editors.
    • New! Added BatchCut prop to ThermalLabel to specify num of labels printing after which cutting will be performed (ZPL Only).
    • New! Added ReadOnly prop to Items. Whether the source content of an item can be changed.
    • New! Added Resizable prop to Items. Whether an item can be resizable in the visual editor surface.
    • New! Added ValidationRegEx and ValidationErrorMessage props to TextItem.
    • New! Vertical Line Spacing support for TextItem.
    • New! Stroke Style (Solid, Dash & Dot) support for ShapeItem derived classes.
    • Improved! Swiss 721 font when rendering ZPL commands.
    • Improved! BarcodeItem RTL human readable text rendering.
    • Barcode Features
      • New! Rectangular Micro QR Code a.k.a. rMQR
      • New! GS1 Rectangular Micro QR Code a.k.a. GS1 rMQR
      • New! DPD (Deutsher Paket Dienst) Code
      • New! DAFT Generic 4-State Barcode

  • 1.0.17 2021-10-20
    • Fixed! Concurrency issues in data binding and expressions scenarios.

  • 1.0.16 2021-10-07
    • Fixed! Error introduced by the previous update.

  • 1.0.15 2021-10-06
    • Fixed! Concurrency issues in data binding and expressions scenarios.

  • 1.0.14 2021-07-06
    • Fixed! Double quotes, Ampersand, Less Than, and Greater Than chars were not escaped in Expressions.
    • Fixed! Error when handing HideIfEmpty prop for TextItem and BarcodeItem.

  • 1.0.13 2021-05-19
    • Fixed! null data value handling when using JSON Data Source.

  • 1.0.12 2021-04-30
    • Fixed! Bug when data source is not specified to a label that requires one.
    • Fixed! Code or Humand Readable Text was not rendered if EAN/UPC GuardBar was disabled.
    • Improved! JSON data type parsing when setting it as a Data Source.

  • 1.0.11 2021-03-30
    • Fixed! Hyphen ASCII 45 char was not printed when printing Fingerprint commands.

  • 1.0.10 2021-03-25
    • New! Added support for handling Custom Font Files.
    • Fixed! NativePrinterFontB was not rendered correctly.

  • 1.0.9 2021-03-23
    • Fixed! Error `Value does not dall within the expected range` introduced by build 1.0.8

  • 1.0.8 2021-03-22
    • New! Added operationId for API actions.
    • Fixed! TextItem word wrap overflow when using ParagraphScaling sizing option.

  • 1.0.7 2021-03-04
    • New! Added Health Check endpoint /health

  • 1.0.6 2021-03-02
    • Fixed! JSON data source detection.

  • 1.0.5 2021-02-01
    • Fixed! Bug when using NativePrinterFonts and TextAlignment Center & Right options.

  • 1.0.4 2021-01-30
    • Fixed! Some properties names were not correctly serialized.

  • 1.0.3 2021-01-26
    • Fixed! Objects' default properties values were not returned by GET methods.

  • 1.0.2 2021-01-25
    • New! Added CharSpacing property to TextItem. This allows setting the horizontal spacing behavior between text characters.

  • 1.0.1 2021-01-18
    • Fixed! Rendering issues when using expressions in data binding scenarios.

  • 1.0 2020-12-30
    • New! Initial release.