Vandaag gaan we kijken hoe we watermerken kunnen vinden en verwijderen uit documenten in C#. Er kunnen op tekst en afbeeldingen gebaseerde watermerken in een document voorkomen. We kunnen dergelijke watermerken eenvoudig zoeken en programmatisch verwijderen uit veel PDF-, Word-, Excel-, PowerPoint- en Visio-ondersteunde documenten.

Volgende onderwerpen komen in dit artikel aan bod:

Zoek en verwijder watermerken uit documenten met behulp van GroupDocs API

.NET API voor het verwijderen van watermerken

Watermerk-API voor .NET - GroupDocs

GroupDocs.Watermark for .NET is een snelle en efficiënte watermerk-API waarvoor geen extra software nodig is. Hiermee kunnen watermerken aan documenten en afbeeldingen worden toegevoegd op een manier die moeilijk te verwijderen is door tools van derden. Hiermee kunnen C#-ontwikkelaars ook eenvoudig watermerken verwijderen uit veel Microsoft- en OpenOffice-bestandsindelingen van tekstverwerkingsdocumenten, spreadsheets, presentaties, Visio-tekeningen en PDF-documenten in .NET-toepassingen. Alle ondersteunde bestandsindelingen worden genoemd in de documentatie.

Nu zal ik voorbeelden laten zien die watermerken zullen vinden en verwijderen. Het is dus beter als u de omgeving van tevoren voorbereidt door een van de geschikte opties te volgen:

PM> Install-Package GroupDocs.Watermark

Vind watermerken in documenten met C#

Watermarker, PossibleWatermarkCollection(de verzameling van PossibleWatermark zijn de klassen van de API om verschillende soorten watermerken in documenten met verschillende zoekcriteria te vinden en snel te verwijderen. Hieronder volgen de stappen voor het eenvoudig doorzoeken van alle watermerken in elk geleverd document met behulp van C#.U kunt uw zoekopdracht naar watermerken verder verfijnen en dit wordt later in dit artikel getoond.

  • Maak het klasseobject Watermarker met het brondocumentbestand.
  • Roep de zoekmethode op. Het zal alle mogelijke watermerken uit het document retourneren.
  • Doorloop de verzameling watermerken om gegevens weer te geven of een actie op elk watermerk uit te voeren.
// Vind alle watermerken in Word, Excel, PowerPoint, Visio en PDF-documenten met C#
using (Watermarker watermarker = new Watermarker("filepath/documentWithWatermarks.pdf"))
{
    PossibleWatermarkCollection possibleWatermarks = watermarker.Search();
    foreach (PossibleWatermark possibleWatermark in possibleWatermarks)
    {
        if (possibleWatermark.ImageData != null)
        {
            Console.WriteLine(possibleWatermark.ImageData.Length);
        }
        Console.WriteLine(possibleWatermark.Text);
        Console.WriteLine(possibleWatermark.X);
        Console.WriteLine(possibleWatermark.Y);
        Console.WriteLine(possibleWatermark.RotateAngle);
        Console.WriteLine(possibleWatermark.Width);
        Console.WriteLine(possibleWatermark.Height);
    }
}

Verwijder watermerken uit documenten in C#

Van alle gezochte watermerken kunnen we elk watermerk of alle watermerken in één keer verwijderen. Het belangrijkste hier, of u met succes de watermerken hebt gevonden die u wilt verwijderen of niet. Wat als er veel verschillende soorten watermerken in een document voorkomen? De API geeft verschillende opties om uw zoekopdracht naar watermerken te verfijnen. De volgende code verwijdert het watermerk uit een PDF-document door de index van de verzameling op te geven met C#.

// Verwijder de watermerken uit PDF en andere documenten met C#
using (Watermarker watermarker = new Watermarker("filepath/documentWithWatermarks.pdf"))
{
    PossibleWatermarkCollection possibleWatermarks = watermarker.Search();

    // Watermerk bij de opgegeven index uit het document verwijderen.
    possibleWatermarks.RemoveAt(0);

    // Verwijder het opgegeven watermerk uit het document.
    possibleWatermarks.Remove(possibleWatermarks[0]);

    watermarker.Save("filepath/noWatermarks.pdf");
}

Meer zoekcriteria voor watermerken

Er zijn veel andere manieren om watermerken met bepaalde criteria te vinden. Na het selectief zoeken kunnen we het (de) watermerk(en) uit de collectie verwijderen door de methode Remove, RemoveAt of Clear te gebruiken. Hier zijn enkele manieren om watermerken te vinden in de verstrekte documenten:

  • Zoek en verwijder watermerken met specifieke tekst
  • Zoek watermerken met RegEx (Regular Expression) en verwijder ze
  • Zoek watermerk met gespecificeerde tekstopmaak
  • Zoek en verwijder hyperlinkwatermerken

Zoek en verwijder watermerken met specifieke tekst

U kunt naar tekstwatermerken zoeken door de exacte tekenreeks op te geven met behulp van de volgende C#-code:

 // Find possible watermarks containing the specified text
TextSearchCriteria textSearchCriterion = new TextSearchCriteria("© 2020");
PossibleWatermarkCollection possibleWatermarks = watermarker.Search(textSearchCriterion);

Zoek naar watermerken met RegEx en verwijder

Als er een patroon in de tekst van het watermerk zit, kunt u een reguliere expressie (RegEx) gebruiken om naar deze watermerken te zoeken en later dienovereenkomstig verwijderen met behulp van de volgende C#-code. Deze code haalt alle watermerken met ©YYYY op.

// Search Watermarks by Regular Expression
Regex regex = new Regex(@"^© \\d{4}$");
TextSearchCriteria textSearchCriterion = new TextSearchCriteria(regex);
PossibleWatermarkCollection possibleWatermarks = watermarker.Search(textSearchCriterion);

Zoek en verwijder watermerken met specifieke tekstopmaak

U kunt ook zien dat de watermerken een specifieke tekstopmaak hebben, zoals de naam van het lettertype, min/max lettergrootte, vet/cursief/onderstreept, enz.

TextFormattingSearchCriteria criterion = new TextFormattingSearchCriteria()
{
    FontName = "Arial",
    MinFontSize = 19,
    MaxFontSize = 42,
    FontBold = true
};
PossibleWatermarkCollection watermarks = watermarker.Search(criterion);
watermarks.Clear();

Zoek en verwijder hyperlinkwatermerken

U kunt de RegEx gebruiken om tekstwatermerken te vinden met hyperlinks in de inhoud. Later kunt u in de collectie controleren of er hyperlinkwatermerken in het zoekresultaat staan. Deze kunnen worden verwijderd met een van de verwijderingsmethoden. De volgende C#-code verwijdert alle watermerken met hyperlinks.

PossibleWatermarkCollection watermarks = watermarker.Search(new TextSearchCriteria(new Regex(@"anyurl\\.com")));
for (int i = watermarks.Count - 1; i >= 0; i--)
{
    // Is watermark the hyperlink?
    if (watermarks\[i\] is HyperlinkPossibleWatermark)
    {
        watermarks.RemoveAt(i);
    }
}

Er zijn veel andere manieren om uw zoeken naar watermerken te verfijnen. U kunt documentatie bezoeken voor meer informatie. Ga voor vragen naar het forum.

Conclusie

Ik denk dat u nu meer vertrouwen zult hebben in het vinden en verwijderen van tekstwatermerken en beeldwatermerken uit Word-documenten, Excel-spreadsheets, Powerpoint-presentaties, PDF-documenten en Visio-tekeningen met behulp van C# binnen uw .NET-toepassingen.

Zie ook