Breaking Changes
Most Windows Forms projects move to TX Text Control 34.0 without code changes, but a project that comes from an older version may have to change its target framework, its licensing or a few calls. The changes are listed below by version, each with what your project has to do. Go through the sections from the version you use now up to 34.0.
At a Glance
| Coming from | What to check |
|---|---|
| 33.0 | Nothing in your code. Test your PDF output: PDF documents are now tagged, and PDF/A is saved as PDF/A-3a. |
| 32.0 | Move the project to .NET 8 or higher, and replace calls of the removed barcode overloads. |
| 32.0 before Service Pack 2 | On .NET, the license file replaces licenses.licx. |
| 29.0 or earlier | In .NET Framework projects, each licenses.licx entry needs the full assembly version. |
Version 34.0
- No changes to existing API. The Update Notes table of version 34.0 has a single empty row, so no changed classes, properties, methods or events are listed. Some renderings of the table show the AppendSettings enumeration without a description in that row. It isn't a change:
AppendSettingsand its valuesNone,StartWithNewParagraphandStartWithNewSectionhave existed since theAppendmethods were introduced in version 14.0. - Same target framework as 33.0. The 34.0 package targets .NET 8, like the 33.0 package, so a project that already uses 33.0 keeps its target framework. Version 34.0 also runs on .NET 10 without code changes.
- Tagged PDF output. PDF documents are now saved with the tags and metadata of PDF/UA, the standard for accessible PDF.
StreamType.AdobePDFAsaves PDF/A-3a. If your application validates, compares or post-processes the PDF files it creates, test it with the new output. See PDF/A. - New properties for accessible PDF. The
DescriptiveTextproperties of HypertextLink, DocumentLink, FormField, Table and FrameBase are new. Existing code does not need them. - Toolbox. The toolbox items are the same as in earlier versions. Only the tab is now named TX Text Control 34.0.
Version 33.0
- .NET 8 or higher. The 32.0 packages targeted .NET 5 and, from Service Pack 2, .NET 6. Since version 33.0, the package targets .NET 8. A project on .NET 6 or .NET 7 has to change its target framework to .NET 8 or higher before it installs the 33.0 or 34.0 package.
- Barcode overloads removed. The overloads of TXBarcodeControl.Load and TXBarcodeControl.Save that take a
SerializationFormatwere removed. Use the remaining overloads, which load from a file name, aStream, aTextReaderor anXmlReader, and save to a file name, aStream, aTextWriteror anXmlWriter. - File names in the package. The 33.0 and 34.0 packages contain TXSVGResources.dll where the 32.0 package contained TXSVGGenerator.dll, and the native libraries txkernel.dll, txtools.dll and txic.dll of the 32.0 package are replaced by libraries named after the major version, such as tx33.dll, tx33_tls.dll and tx33_ic.dll in version 33.0 and tx34.dll, tx34_tls.dll and tx34_ic.dll in version 34.0. The format libraries, such as tx32_pdf.dll, already carried the major version. A project that references the package needs no change. A project or installer that lists the files by hand has to follow the new names.
Version 32.0
- Licensing on .NET since Service Pack 2. In .NET projects, the license compiler and licenses.licx are no longer used. The package adds the license file txtextcontrol.winforms.license, which the build embeds into your assembly. Check that your project no longer contains licenses.licx after the update, and delete it if it does. .NET Framework projects keep licenses.licx unchanged. See Development Licenses.
- SVG images of pages. The Update Notes of version 32.0 list a new overload of Page.GetImage that returns a page as an SVG image. Existing calls keep working.
- Class libraries and user controls. Since Service Pack 2, TX Text Control can be used in a class library or a user control that is called from unlicensed assemblies, once TextControl.EntryAssembly names the assembly that holds the license. See Application Licensing.
Version 31.0
Version 31.0 has no change that requires work. A project that references the assemblies directly can move to the NuGet packages, which were introduced with this version.
Version 30.0
Since version 30.0, the setup no longer registers the assemblies in the global assembly cache, and each entry of licenses.licx in a .NET Framework project has to contain the full assembly version of the assemblies your project references. Without the version, an older installed version can be used and cause a licensing error. .NET Framework: licenses.licx shows an entry.
The Update Notes of version 30.0 list one change: LoadSettings.PDFImportSettings was extended with settings for the data that a PDF document carries besides its text. Existing calls keep working.
Obsolete Members
Some members of the document engine and of mail merge, such as MailMerge.MergeBlocks and ListFormat.CharAfterNumber, still exist but are obsolete. Replace them when you touch the code: Deprecated APIs in What's New lists each one with its replacement.