[Release] GroupDocs.Annotation for .NET 26.6

Dear GroupDocs users, we’re pleased to announce GroupDocs.Annotation for .NET 26.6. This release restructures the NuGet packaging to add .NET 6 and .NET 8 builds, upgrades all underlying document engines, and ships seven fixes covering presentations, Visio/Diagram files, image annotation, and HTML documents.


:rocket: NuGet package split — .NET 6 and .NET 8 support added

The package is now published as a lightweight router metapackage plus a dedicated runtime package per target framework:

Package Target Framework
GroupDocs.Annotation Router — install this as before
GroupDocs.Annotation.Net462 .NET Framework 4.6.2
GroupDocs.Annotation.Net60 .NET 6
GroupDocs.Annotation.Net80 .NET 8

NuGet resolves the correct runtime package automatically. The install command, namespaces, types, and public API are unchanged — you’ll just see one extra transitive package under Dependencies.

This also delivers .NET 6 and .NET 8 builds, replacing the previous netstandard2.1 build. A .NET 10 build is planned for a future release once the underlying engines support that runtime.

# Unchanged install command — NuGet picks the right runtime package for your TFM
dotnet add package GroupDocs.Annotation

:wrench: Engine upgrades and fixes

All bundled document engines (Word-processing, Spreadsheet, Presentation, PDF, Visio/Diagram, Email, Imaging, CAD) have been updated to their latest releases.

The engine upgrade enabled the following fixes:

  • PPTX — image annotations ImageAnnotation can now be added to presentations without throwing; the exporter was updated to a stable byte-stream path after the internal API it relied on was removed from the new engine. (ANNOTATIONNET-2656)
  • Visio — area and redaction fill Area annotations and resource-redaction boxes now render as solid filled shapes instead of empty outlines. The new diagram engine no longer defaults shapes to a solid fill pattern, so fill is now applied explicitly whenever a fill colour is set. (ANNOTATIONNET-2657)
  • Visio — hyperlinks crash Removing annotations from a Visio document whose shapes contain hyperlinks no longer throws System.ArgumentOutOfRangeException. The cleanup loop now iterates in reverse to stay safe as the engine shrinks the hyperlink collection. (ANNOTATIONNET-2658)
  • Visio/Diagram — GetDocumentInfo text lines Document.GetDocumentInfo() now returns populated TextLines for each Visio page. The extractor was reading shape text incorrectly after the engine started exposing it with internal markup; it now strips the markup and accumulates grouped sub-shape text. (ANNOTATIONNET-2659)
  • PPTX — slide preview generation Document.GeneratePreview(...) for presentations works again; the internal thumbnail API it used was removed from the new engine and has been replaced with the engine’s current image-rendering path. (ANNOTATIONNET-2660)
  • Image files — save after annotating Saving an annotated image file (JPG, PNG, etc.) no longer throws System.NotImplementedException from the imaging engine’s raw-data save path. Both adding and removing annotations on image documents are affected. (ANNOTATIONNET-2638)
  • HTML with footnotes or endnotes Opening an HTML document (e.g. exported from Word) that contains both comments and footnotes or endnotes no longer throws System.NullReferenceException from the Annotator constructor. The internal page-layout walker now handles note containers and footnote/endnote lookups are null-safe. The same fix improves comment extraction near footnotes in Word and email documents. (ANNOTATIONNET-2103)

:warning: Behaviour change — Spreadsheet text-replacement font colour

With the updated spreadsheet engine, the foreground colour of replaced text in .xlsx/.xls documents now materialises as White when not explicitly set, which is invisible on a white background. Action required if you use ReplacementAnnotation on spreadsheets and previously relied on the default colour — set FontColor explicitly:

using GroupDocs.Annotation;
using GroupDocs.Annotation.Models;
using GroupDocs.Annotation.Models.AnnotationModels;

using (Annotator annotator = new Annotator("input.xlsx"))
{
    ReplacementAnnotation replacement = new ReplacementAnnotation
    {
        FontColor = 0,           // ARGB — 0 = black; set explicitly instead of relying on the default
        FontSize = 12,
        Message = "Replacement",
        PageNumber = 0,
        Points = new List<Point>
        {
            new Point(80, 60), new Point(240, 60),
            new Point(80, 80), new Point(240, 80)
        },
        TextToReplace = "New text"
    };

    annotator.Add(replacement);
    annotator.Save("output.xlsx");
}

(ANNOTATIONNET-2661)


:link: Resources


As always, if you run into any issues or have questions after upgrading, please open a new topic and we’ll be happy to help. Users currently on netstandard2.1 are especially encouraged to upgrade to take advantage of the native .NET 6 and .NET 8 builds.