GroupDocs.Watermark for .NET 24.10 Release Notes

The release of GroupDocs.Watermark version 24.10 introduces new features which enhance experience with tiled watermarks. Also it includes several bug fixies.

Public API changes

The RotateAroundCenter property has been renamed to RotateAroundOrigin for better understanding. Turning it on allows you to rotate tile watermarks relative to the bottom left edge of the document

Full list of changes in this release

KeyCategorySummary
#WATERMARKNET-1883★ FeatureSaving information about added watermarks in the pdf metadata
#WATERMARKNET-1874★ FeatureCreating a one-third offset template for tile watermarks
#WATERMARKNET-1878★ FeatureCreating ability to generate a step ladder tile watermarks
#WATERMARKNET-1874★ FeatureBasket Weave mosaic
WATERMARKNET-1848🔧 FixMultiFrame images return a null PageNumber in the result after adding watermarks

Major Features

Saving information about added watermarks in the pdf metadata

🌐 Added functionality to save details of applied watermarks in the PDF metadata for improved tracking and document management.

using (Watermarker watermarker = new Watermarker("test.pdf",))
{
    // Add text watermark
    TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8));

    // Enabling saving results in the documents metadata
    watermark.SaveResultInMetadata = true;
    textWatermark.HorizontalAlignment = HorizontalAlignment.Left;
    textWatermark.VerticalAlignment = VerticalAlignment.Top;
    watermarker.Add(textWatermark);

    watermarker.Save(outputFileName);
}

Creating a one-third offset template for tile watermarks

🌐 Introduced a one-third offset template for tile watermarks, enabling precise and visually balanced watermark placement across documents. This feature enhances customization and layout flexibility.

using (Watermarker watermarker = new Watermarker("test.pdf"))
{
    // Create a text watermark with a specified text and font
    var watermark = new TextWatermark("test watermark", new Font("Arial", 48));  

    // Configure TileOptions and setting TileType to OneThirdOffset
    watermark.TileOptions = new TileOptions()
    {
        TileType = TileType.OneThirdOffset,
        RotateAroundOrigin = rotateAroundOrigin,
        LineSpacing = new MeasureValue()
        {
            MeasureType = TileMeasureType.Pixel,
            Value = 80
        },
        WatermarkSpacing = new MeasureValue()
        {
            MeasureType = TileMeasureType.Percent,
            Value = 10
        },
    };

    watermark.Opacity = 0.3;
    watermark.RotateAngle = -45;

    watermarker.Add(watermark);

    // Save the watermarked document and capture the watermarking result
    WatermarkResult watermarkResult = watermarker.Save("result.pdf");
}

Creating ability to generate a step ladder tile watermarks

🌐 Added the ability to generate step ladder tile watermarks, allowing for a staggered, dynamic watermark layout that enhances document design options.

using (Watermarker watermarker = new Watermarker("test.pdf"))
{
    // Create a text watermark with a specified text and font
    var watermark = new TextWatermark("test watermark", new Font("Arial", 48));  

    // For achieving step ladder pattern we should set TileType to Offset and make RotateAngle 90 degrees
    watermark.TileOptions = new TileOptions()
    {
        TileType = TileType.Offset,
        RotateAroundOrigin = rotateAroundOrigin,
        LineSpacing = new MeasureValue()
        {
            MeasureType = TileMeasureType.Pixel,
            Value = 80
        },
        WatermarkSpacing = new MeasureValue()
        {
            MeasureType = TileMeasureType.Percent,
            Value = 10
        },
    };

    watermark.Opacity = 0.3;
    watermark.RotateAngle = -90;

    watermarker.Add(watermark);

    // Save the watermarked document and capture the watermarking result
    WatermarkResult watermarkResult = watermarker.Save("result.pdf");
}

Basket Weave mosaic

🌐 Introduced the option to create watermarks in a Basket Weave mosaic pattern, providing a unique, interwoven design for enhanced visual impact and security.

using (Watermarker watermarker = new Watermarker("test.pdf"))
{
    // Create a text watermark with a specified text and font
    var watermark = new TextWatermark("test watermark", new Font("Arial", 48));  

    // For achieving step ladder pattern we should set TileType to BasketWeave
    watermark.TileOptions = new TileOptions()
    {
        TileType = TileType.BasketWeave,
        RotateAroundOrigin = rotateAroundOrigin,
        LineSpacing = new MeasureValue()
        {
            MeasureType = TileMeasureType.Pixel,
            Value = 80
        },
        WatermarkSpacing = new MeasureValue()
        {
            MeasureType = TileMeasureType.Percent,
            Value = 10
        },
    };

    watermark.Opacity = 0.3;
    watermarker.Add(watermark);

    // Save the watermarked document and capture the watermarking result
    WatermarkResult watermarkResult = watermarker.Save("result.pdf");
}