Differences in NiceLabel 2019 compared with NiceLabel 6
Article ID: 302 - Updated: Nov 10, 2020 - Version: V2019 - Category: Compatibility and Migration
NiceLabel 2019 is the next-generation of NiceLabel software built upon foundation set by NiceLabel 2017.
NiceLabel 2019 inherits a lot of the concepts and functionality from the NiceLabel 6 software, but is based on new technology. As such, some of the functionality that was available in NiceLabel 6 is either offered differently or no longer available. While NiceLabel 2019 remains highly compatible with the previous version of NiceLabel, there are differences in the product lines which are the result of platform and software components and product management decisions on.
This article describes the differences between NiceLabel 2019 and NiceLabel 6. It also provides a migration overview and outlines challenges you may encounter when moving to the NiceLabel 2019 platform.
General Functionality Restructure
- Licensing - All multi-user editions of NiceLabel 2019 are consistently licensed using a simple and transparent licensing method based on the number of printers used. For more information, see the NiceLabel Licensing White Paper.
- User management - Full user permission management with role-based access control is available in LMS editions and manageable via Control Center web user interface. In editions below LMS, label design permission can be omitted by installing only a print module on a workstation.
- Print history logging and label reprinting - Logging of printing events to a consolidated central database is available in LMS editions and accessible via Control Center web user interface. Labels retrieved from printing history can be reprinted on systems running the Automation module. Local printing log and label reprinting are no longer available.
- ActiveX API - ActiveX API is no longer available and is superseded by the new .NET API available in PowerForms Suite and LMS editions. The new .NET based API incorporates modern programming concepts and is superior in terms of performance and reliability. Applications using the ActiveX API will need to be adapted in order to make them compatible with the new API. See the .NET API User Guide for more.
- Desktop Applications - Set of NiceLabel 2019 desktop applications has been significantly simplified. Many applications have been consolidated into new applications while others have been discontinued. NiceLabel Pro and NiceForm have been merged into NiceLabel Designer which now supports both – label and form (solution) designing. NiceLabel Print and QuickPrint have been merged into NiceLabel Print. NiceData has been discontinued as modern database and spreadsheet formats do not require a 3rd party content editing utility. NicePrint Queue has been discontinued – this functionality is available as part of Control Center for LMS users. The Download to printer functionality of NiceMemMaster is available with NiceLabel drivers V6 and above. Smart Keyboard Downloader utility has been discontinued.
NiceLabel 2019 is highly compatible with previous editions of NiceLabel in terms of Label design functionality. This means that most labels open and print without any issues. When making changes, users need to store the labels in the new .NLBL or .NSLN document formats.
This section lists the differences and currently non-supported functionalities in NiceLabel 2019. When opening or importing a NiceLabel 6 .LBL file to a NiceLabel 2019 .NLBL or .NSLN file which uses these features, the system informs you about incompatibility issues. These functionalities are ignored. Further releases of NiceLabel 2019 might re-introduce some of the below listed functionalities.
Objects and properties
- Not supported barcodes. The following barcode types are not available in NiceLabel 2019: Royal Mail, Australia Post 4-state, Code128 Pharmacy, Kix, Pharmacode, all Postnet barcodes. When importing legacy labels, these objects will be removed from the label. Support for these barcodes will be added in future releases.
- Not supported 2D barcodes. The following 2D barcode types are not available in NiceLabel 2019: 2D Pharmacode, Codablock F, GridMatrix, DotCode. When importing legacy labels, these objects are removed from the label. Support for non-supported 2D barcodes will be added in future releases.
- OLE object. Object linking and embedding (OLE) label design objects are no longer available. When importing the existing labels with such objects, they are removed from the label.
- “Stacked text” option of Text object. Stacked text option is not supported with Text object properties.
- Size of PDF-417 barcode. When opening a PDF-417 2D barcode in NiceLabel 2019, the aspect ratio is adjusted to a value of at least 1.5 in order to ensure standard compliance. Also, after designing a PDF-417 barcode with value for the rows and columns set to 0, NiceLabel 2019 can display the barcode with a slightly different size or ratio. The data itself remains encoded correctly, but you will have to make sure the barcode still fits on the label. Barcode placement can be verified using the label preview.
- ECC 200 level for Data Matrix barcode. When you load the label with Data Matrix barcode created in NiceLabel 6, the ECC 000-140 level is automatically set to 200. ECC 200 is the latest version of Data Matrix barcode – it uses Reed-Solomon codes for error correction and symbol erasure recovery.
- QR Code displays the error message "Contents of item cannot be set, because its value is invalid. Value to encode is too long. Either update the content or barcode properties to allow more content" during printing. This error might appear when you try to print a label which was created in NiceLabel 6 and contains a QR Code with invalid properties. In NiceLabel 6, in certain scenarios, the designer allowed you to define invalid content for the selected type of QR Code. NiceLabel 2019 loads such label and recognizes the incompatibility during printing. You have to verify the settings of the erroneous barcode object.
- Font point size differences in Text objects. NiceLabel 2019 includes an optimized calculation of fonts point sizes. In certain cases, this might cause a Text object to display a font slightly differently when compared to NiceLabel 6. For example, font height might differ for 1 pixel.
- Rotating the object with enabled fill option also rotates the fill itself. When rotating the object with enabled fill option in NiceLabel 6, only the object was rotated, while the fill retained its absolute orientation relative to the label). In NiceLabel 2019, rotating the object also rotates the fill effect – fill settings are retained relative to the object.
- The Rectangle object has uniform thickness setting. In NiceLabel 6, you could define different values for horizontal and vertical thickness. In NiceLabel 2019, the Rectangle object has a single uniform thickness setting. When loading a Rectangle object on a label created in NiceLabel 6, horizontal thickness is applied.
- Picture mirroring. The options to flip picture vertical or horizontal are not available.
- Relative object positioning across label sides. Object position cannot be linked to the position of some object from the other label side.
- Printing human readable in Truetype font. In NiceLabel v6, you could design a barcode object to print human interpretation formatted in the printer font. When opening V6 label, NiceLabel 2019 will convert the printer font into Arial truetype font. You can select a custom truetype font.
- Global variables. NiceLabel 2019 uses a new folder (normally C:\ProgramData\NiceLabel\Global Variables) or Control Center's database for LMS users to store the global variables. If you want to use the global variables from NiceLabel 6, you have to copy the variables from NiceLabel 6 location to the new location. Global variables with counter rollover settings are not supported – the setting is ignored.
- Lookup table is not available. Lookup table was a simple table object with a few fields embedded in the label file. It was used as a quick storage for non-changeable database. The alternative is to use an external data source, such as formatted text file (CSV) or Excel file.
- Custom check digit algorithms are not available. The custom check digit functionality from NiceLabel 6 (the definition of check digit algorithms and the action to execute the algorithm) cannot be used in NiceLabel 2019. This was not a frequently used functionality. The alternative is to code a custom check digit algorithm using VBScript or Python.
- Non-supported functions. There are a few functions that you might be familiar with from NiceLabel 6, but are not longer available in NiceLabel 2019. These are: User defined check-digit algorithms, Currency exchange, PIATS Code. They can be replaced using a custom VBScript or Python scripts.
- Non-supported "label" API object in scripting. This part of the ActiveX API was previously also accessible from the label itself. This object was frequently used to set the conditional visibility of objects and to set the values of other label variables. NiceLabel 2019 allows direct defining of conditional visibility separately for each object in the design area. To set the label values of other variables, PowerForms application can easily be created for such task.
- Connection to BDE data sources is not available. Borland Database Engine was a popular database engine years ago (prior to 2000), when Paradox and dBase were predominant file-based database types. Today, the use of BDE data sources is negligible.
- RFID "Read & Store". RFID support in NiceLabel 2019 allows you to encode RFID tags on a smart label. This functionality is offered through NiceLabel printer drivers. However, the "Read & Store" (reads the contents of an RFID tag – usually UniqueID – and to save it to a local database) feature is not supported yet.
- Functions no longer have an editable data output format. In NiceLabel 2019, the function output format does not allow additional editing, such as adding a prefix, suffix, or setting a date format. If you want to change the function output format, define a new variable, use the function data source as an initial value and set a changed format for its output.
- No value used for NULL fields in databases. If a table field contains a NULL value, NiceLabel 2019 no longer displays the default field (such as 0) and ignores its content.
- No need to define the format of DateTime fields. In NiceLabel 6, you had to explicitly set the data type to Date in order to use the user's localization settings. In NiceLabel 2019, these settings are used by default.
- Consistent handling of DateTime fields. In NiceLabel 6, a data field was handled differently when being used on a label and when being used on a form. In NiceLabel 2019, a common data source is used and equally handled on a label and on a form. If you have a DateTime field with empty Time component, its output are the Date component alone (the output format for the field must be a default one with "HH:mm:ss" at the end). If you really want to force a format using the empty Time component at the end (00:00:00), you can add a space at the end of the output date format.
- Data from linked fields and objects. NiceLabel Designer Standard 6 had the option to merge values from various objects and to use the merged value in a new object. Such object data merging is not available in NiceLabel 2019. However, the linked fields functionality loads correctly when you import legacy label files (.LBL) into NiceLabel 2019. Values are merged using the Concatenate function.
- Database filter with LIKE condition:
Filter with LIKE relation will search for %value% not value%. In NiceLabel 6, LIKE relation was handled differently in NiceLabel Pro and in NiceForm. NiceLabel Pro created a condition for LIKE that queried for value% (wildcard at the end), whereas NiceForm created a condition that queried for %value% (wildcard at both ends). NiceLabel 2019 uses the %value% implementation – same as NiceForm previously.
Unification of LIKE database filter. The implementation of LIKE filter in NiceLabel 6 was done differently for NiceLabel Pro and for NiceForm applications. In NiceLabel Pro, the resulting dataset contained all records if the parameter for LIKE was empty. In NiceForm, the resulting dataset contained no records for the empty LIKE parameter. NiceLabel 2019 has inherited the functionality from NiceLabel Pro 6 and returns all records if a parameter for LIKE is empty. In other words, the LIKE condition is ignored if it has no value. To use the old functionality in new forms, set the LIKE parameter to an invalid value, such as "<Enter the product>". In this case, no matching record is found and the returned dataset is empty.
- Honoring original newline character for data coming from database sources. NiceLabel 2019 will keep the original newline character, might it be CR, LF or CR/LF. NiceLabel 6 always reformatted the newline into CR/LF syntax.
- Prompting for value of the data source. NiceLabel 2019 will prompt a user for value of the data source just once – before the print process starts. The configurable option from NiceLabel 6 to prompt the user for data value mid-printing is no longer supported. The same result can be accomplished by splitting the print job in several batches, for which you provide data values all at once.
- Labels saved in NiceLabel versions prior to 5.4.4 cannot be used without a conversion. Print modules in NiceLabel 2019, such as NiceLabel Print, NiceLabel Automation and NiceLabel .NET API cannot print legacy labels (.LBL) that have been saved with NiceLabel prior to version 5.4.4. When you try to print such label, you receive the message "File <label> was created by an older label designer and contains design features that cannot be used. To make the label available, open it in the latest version of designer and save it." To make these labels available for printing, open them in NiceLabel Designer 2019 and re-save them in the new .NLBL format.
- Document Metadata. Metadata about the current document, such as author, keywords, comment, and file version is not available.
- Multiband Printing. The option to print a large size label in several bands or stripes is not supported.
- Smart replacement of printer fonts. The NiceLabel 6 font replacement feature is no longer supported in favor of the new configurable font replacement. You can define a custom font mapping rules and apply them to NiceLabel 2019 Designers and Automation. See the respective topic in NiceLabel 2019 help.
- Custom stocks. NiceLabel 2019 does not support creation of custom stocks. However, you can select the stock from a predefined library of stocks. The stocks contain label dimensions information, but no printer driver settings are included.
- Label is linked to stock. The option to link the current label to a stock is not supported.
- Opening a page label with labels across (such as 2x4) for a thermal printer might open differently.
In NiceLabel 6, it becomes 2 x 1 or 1 x 1 label – depending on the maximum label width.
In NiceLabel 2019, it becomes 2 x 4 or 1 x 4 label (or even 1 x 3), depending on the maximum label width and height.
- "Identical copies per label" setting is not copied from a V6 label. Within the .LBL file, you could save the number of label copies that were used at print time. The printing functionality is now handled by the auto-generated print form. To change the default value, update the value of variable named PrintingForm_IdenticalCopies which is generated for the printing form. If you build a PowerForms application yourself, you already have a full control over the label quantity settings.
- Ribbon customization. NiceLabel 2019 does not support ribbon customization, like it was possible to customize toolbars in NiceLabel V6.
- EasyForms auto-generated forms. NiceLabel Pro V6 can generate the print form for each label that the user designs. You cannot change the functionality of the forms, but you can change their visual appearance a bit. When migrating labels from V6 to V2019, the print forms will not be imported as NiceLabel 2019 generates forms with different types of objects. The user can quickly re-create the forms with a click on a button.
- Running JOB files in command-line parameter. NiceLabel Designer does not support executing JOB files from a command-line. You can use NiceLabel Automation to automate label printing with JOB files.
- Download of individual images into printer memory. You cannot download images into printer memory separately from the label template. This was an optimization techique used with older and slower printers (e.g. connected with the RS232 bus). Downloading individual images does not gain much benefit with modern printers, just adds another layer of complexity. You can still download static images from the label template using the "Store/recall" printing mode. You can also download Truetype fonts in the NiceLabel printer driver.
NiceLabel 2019 is highly compatible with previous editions of NiceLabel in terms of form design functionality. A majority of older form solutions will run as-is, but adaptation is recommended to leverage the newly introduced capabilities. When making changes, the users will need to store the forms (solutions) using the new .NSLN document format. This section lists the differences and currently non-supported functionalities in NiceLabel 2019. If you open or import an .XFF form file in NiceLabel 2019 which uses these features, the system informs you. Non-supported functionalities are ignored. Further releases of NiceLabel 2019 might re-introduce some of the below listed features.
Objects and properties
- Table object does not support the built-in navigator. When you import a NiceLabel 6 form which includes a Table object with navigator, the importer adds the navigator as a separate control on the form. In the end, user experience remains the same as with NiceLabel 6.
- BMP images used on buttons are not transparent. Usually, images in BMP format do not include transparency. In NiceLabel 6, the color of left-top-most pixel was assigned a transparent color if a BMP image was used on the buttons. To use the transparent background in NiceLabel 2019, convert the images to PNG format which supports transparency by default.
- Label Preview rotation. Rotation of label preview inside the Label Preview object is not supported. If a rotation angle other than 0 degrees is defined, the label will not be displayed rotated. However, you can rotate the complete preview control to achieve a similar effect.
- Animated GIFs are not supported. The animation does not run, the first image in the animation is displayed.
- Refresh preview. This action was introduced to support manual refreshing of label previews on slow computers. By default, PowerForms updates the label preview for each change of connected label data sources. NiceLabel 2019 is built using the new .NET technology and does not need this action anymore.
- Close label. Keeping a label open does not consume a relevant amount of memory resources and at the same time provides for an immediate response the next time the label is required. You can keep all labels in memory. NiceLabel 2019 is built on the new .NET technology and does not need this action anymore.
- For every label. In NiceLabel 6, this action allowed you to execute a certain set of actions for a group of labels. This action was rarely used. To replicate the functionality with NiceLabel 2019, you can define many Open Label actions and assign the appropriate actions to each label.
- Acquire image. In NiceLabel 6, this action allowed you to interface PowerForms application with the TWAIN-enabled scanning devices or cameras. There is no substitute functionality available in NiceLabel 2019.
- View log file. Local log is not available in NiceLabel 2019. LMS users can configure PowerForms applications to open the consolidated printing history on Control Center webpage instead.
- Custom SQL statement in combination with filter is not supported. In NiceLabel 6, you could define a custom SQL statement and additionally define a filter for it when building a form. This is an atypical combination of double filtering, which is not supported in NiceLabel 2019. You should define a filter just once.
- Date variable can have an empty value. When you define a date variable in NiceLabel 6 and connect it to the Edit field object, a user can select the date value in date picker, but cannot empty the value. In NiceLabel 2019, the date variable has no default value. If you want to assign the current date as a startup value, you can set the initial value of a date variable to "." (dot character). If you want to assign any other date as a startup value, set the initial value to reference another current date variable.
- Adding records to a table without a primary key is not possible. When you create a form to manage database records, you might see the error message "Cannot execute requested database operation. Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information." This happens when you try to add a new record to a table that does not have a primary key defined.
- Distributed printing is not supported. Distributed printing was used in the past to support printing from Pocket NiceLabel. With distributed printing, the Print button created a NiceLabel JOB file and sent it to NiceWatch for processing. If you need the similar functionality with your desktop PowerForms application, configure it using new actions in NiceLabel 2019, such as "HTTP Request".
- Automatic events for incoming serial port data are not supported. The form application will not automatically collect the data received on the serial port as it does in NiceLabel 6. As a workaround, you can define OnFormTimer event and read the data from the serial port in time intervals with the action Read Data from Serial Port.
- Out-of-the-box support for Python programming language. NiceLabel 2019 uses IronPython, a .NET variant of Python programming language. IronPython supports .NET Framework and Python libraries. Support for IronPython is included with NiceLabel 2019 and requires no additional installation.
- Normal / Data view. A single design surface view displays the current values of objects (if assigned), or displays six question marks (or less if the data source is limited to shorter length) for variable objects with assigned current value. To see the data view of the label as it would print out, open the Print dialog. The real-time label preview is rendered on-screen.
- Stroke fonts are not supported. Stroke fonts use an older font technology and were developed for plotters under Microsoft Windows 3.X. Quality of printed output on other output devices is very poor. Examples of stroke fonts include Roman, Modern, and Script.
- Most of label export features are not supported (such as export to graphics, POF, SAP and general export). You can, however, use the store & recall functionality, which exports the label into printer's memory and recalls it with label data at print time. Labels can be exported to graphics in PowerForms product using appropriate actions, such as Redirect printing to PDF, which will generate PDF file.
- Export (store) label to printer is not available in Express. To export a label to printer and store it in the printer's internal memory, NiceLabel Designer Pro product level or above is required.
- Printing text boxes that do not fit into a designed rectangle. If the setting for "Print invalid objects" was set to "True" in NiceLabel 6, a non-fitting text box was still printed with a reported error in preview. In NiceLabel 2019, an error is reported if a text box does not fit. If a user wants to achieve the same response as with NiceLabel 6, he needs to enable the option "Ignore excessive content" for the Text box object.
Differences in NiceLabel Control Center
- Move print job from one printer spooler to another. The Print Management tab option which moves a print job from one printer to another is not available in Control Center 2019.
Differences in NiceLabel Automation
- Running triggers in a failover cluster. If you enable failover cluster support in Automation, the information about the loaded configurations and enabled triggers is no longer propagated automatically to Automation on both nodes. NiceLabel Automation on each cluster node has its own settings. For a cluster to work as expected, make sure you deploy equal configuration on both nodes.