امروز نگاهی به نحوه پیدا کردن و حذف واترمارک از اسناد در C# خواهیم داشت. ممکن است واترمارک های متنی و تصویری در یک سند وجود داشته باشد. ما به راحتی می توانیم چنین واترمارک هایی را از بسیاری از اسناد پشتیبانی شده PDF، Word، Excel، PowerPoint و Visio جستجو و به صورت برنامه نویسی حذف کنیم.

در این مقاله به موضوعات زیر پرداخته خواهد شد:

با استفاده از GroupDocs API، واترمارک ها را از اسناد پیدا و حذف کنید

NET API برای حذف واترمارک

واترمارک API برای .NET - GroupDocs

GroupDocs.Watermark for .NET یک API واترمارک سریع و کارآمد است که به نرم افزار اضافی نیاز ندارد. این اجازه می دهد تا به اسناد و تصاویر واترمارک اضافه کنید به گونه ای که حذف آن برای ابزارهای شخص ثالث دشوار باشد. همچنین به توسعه دهندگان C# اجازه می دهد به راحتی واترمارک ها را از بسیاری از فرمت های فایل مایکروسافت و OpenOffice اسناد پردازش کلمه، صفحات گسترده، ارائه ها، نقشه های Visio و اسناد PDF در برنامه های NET حذف کنند. همه فرمت‌های فایل پشتیبانی شده در [اسناد] ذکر شده‌اند.

اکنون، نمونه‌هایی را نشان خواهم داد که واترمارک‌ها را پیدا کرده و حذف می‌کنند. پس بهتر است با رعایت هر یک از گزینه های مناسب، محیط را از قبل آماده کنید:

PM> Install-Package GroupDocs.Watermark

یافتن واترمارک در اسناد با استفاده از C#

Watermarker، PossibleWatermarkCollection(مجموعه PossibleWatermark کلاس‌های API برای یافتن انواع واترمارک در اسناد با معیارهای جستجوی مختلف و حذف سریع آنها هستند. مراحل زیر در زیر آمده است. برای جستجوی اساسی تمام واترمارک‌ها در هر سند ارائه شده با استفاده از C#.

  • شی کلاس Watermarker را با فایل سند منبع ایجاد کنید.
  • روش جستجو را فراخوانی کنید. تمام واترمارک های ممکن را از سند برمی گرداند.
  • از مجموعه واترمارک ها عبور کنید تا داده ها را نمایش دهید یا هر عملی را روی هر واترمارک انجام دهید.
// با استفاده از C# تمام واترمارک ها را در اسناد Word، Excel، PowerPoint، Visio و PDF پیدا کنید.
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);
    }
}

حذف واترمارک از اسناد در C#

از بین تمام واترمارک های جستجو شده، می توانیم هر واترمارکی یا تمام واترمارک ها را یکجا حذف کنیم. نکته اصلی در اینجا این است که آیا واترمارک(هایی) را که می خواهید حذف کنید با موفقیت پیدا کرده اید یا خیر. اگر انواع مختلفی از واترمارک در یک سند وجود داشته باشد، چه؟ API گزینه های مختلفی را برای اصلاح جستجوی شما برای واترمارک ارائه می دهد. کد زیر با تعیین نمایه مجموعه با استفاده از سی شارپ، واترمارک را از یک سند PDF حذف می کند.

// حذف واترمارک از PDF و سایر اسناد با استفاده از C#
using (Watermarker watermarker = new Watermarker("filepath/documentWithWatermarks.pdf"))
{
    PossibleWatermarkCollection possibleWatermarks = watermarker.Search();

    // واترمارک در نمایه مشخص شده را از سند حذف کنید.
    possibleWatermarks.RemoveAt(0);

    // واترمارک مشخص شده را از سند حذف کنید.
    possibleWatermarks.Remove(possibleWatermarks[0]);

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

معیارهای جستجوی بیشتر برای واترمارک

راه های بسیار دیگری برای یافتن واترمارک با معیارهای خاص وجود دارد. پس از جستجوی انتخابی، می‌توانیم با استفاده از روش‌های Remove، RemoveAt یا Clear، واترمارک (ها) را از مجموعه حذف کنیم. در اینجا چند روش برای یافتن واترمارک از اسناد ارائه شده آورده شده است:

  • واترمارک با متن خاص را پیدا و حذف کنید
  • واترمارک ها را با RegEx (Regular Expression) جستجو کنید و حذف کنید
  • جستجوی واترمارک با قالب بندی متن مشخص شده
  • واترمارک هایپرلینک را پیدا و حذف کنید

یافتن و حذف واترمارک با متن خاص

با استفاده از کد C# زیر می توانید واترمارک متن را با تعیین رشته دقیق جستجو کنید:

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

جستجو برای واترمارک با RegEx و حذف

اگر الگویی در متن واترمارک وجود دارد، می‌توانید عبارت منظم (RegEx) را برای جستجوی این واترمارک‌ها ارائه دهید و بعداً می‌توانید با استفاده از کد C# زیر را حذف کنید. این کد تمام واترمارک ها را با ©YYYY واکشی می کند.

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

یافتن و حذف واترمارک با قالب بندی متن خاص

همچنین می‌توانید واترمارک‌ها را با قالب‌بندی متن خاصی مانند نام قلم، حداقل/حداکثر اندازه قلم، پررنگ/مورب/خط‌دار و غیره بیابید.

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

یافتن و حذف واترمارک هایپرلینک

شما می توانید از RegEx برای یافتن واترمارک های متنی که دارای لینک در محتوا هستند استفاده کنید. بعداً می توانید در مجموعه بررسی کنید که آیا واترمارک هایپرلینک در نتیجه جستجو وجود دارد یا خیر. اینها را می توان با هر یک از روش های حذف حذف کرد. کد C# زیر تمام واترمارک ها را با لینک ها حذف می کند.

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);
    }
}

راه‌های زیادی برای اصلاح [جستجوی واترمارک12 شما وجود دارد. برای جزئیات بیشتر می توانید به اسناد مراجعه کنید. برای سؤالات، از [فروم 14 دیدن کنید.

نتیجه

من معتقدم که اکنون در یافتن و حذف واترمارک های متنی و همچنین واترمارک های تصویری از اسناد Word، صفحات گسترده اکسل، ارائه های Powerpoint، اسناد PDF، و نقشه های Visio با استفاده از C# در برنامه های NET خود مطمئن تر خواهید بود.

همچنین ببینید