اليوم ، سنلقي نظرة على كيفية البحث عن العلامات المائية وإزالتها من المستندات في C #. يمكن أن يكون هناك نص وعلامات مائية قائمة على الصور في المستند. يمكننا البحث بسهولة عن هذه العلامات المائية وإزالتها برمجيًا من العديد من المستندات المدعومة من ملفات PDF و Word و Excel و PowerPoint و Visio.

سيتم تغطية الموضوعات التالية في هذه المقالة:

البحث عن العلامات المائية وإزالتها من المستندات باستخدام GroupDocs API

NET API لإزالة العلامة المائية

Watermark API for .NET - GroupDocs

GroupDocs.Watermark for .NET عبارة عن واجهة برمجة تطبيقات للعلامات المائية سريعة وفعالة لا تتطلب أي برامج إضافية. يسمح بإضافة علامات مائية إلى المستندات والصور بطريقة يصعب على أدوات الجهات الخارجية إزالتها. كما يتيح لمطوري C # إزالة العلامات المائية بسهولة من العديد من تنسيقات ملفات Microsoft و OpenOffice لمستندات معالجة الكلمات وجداول البيانات والعروض التقديمية ورسومات Visio ومستندات PDF في تطبيقات .NET. جميع تنسيقات الملفات المدعومة مذكورة في الوثائق.

الآن ، سأعرض أمثلة من شأنها العثور على العلامات المائية وإزالتها. لذلك ، سيكون من الأفضل أن تقوم بإعداد البيئة مسبقًا باتباع أي من الخيارات المناسبة:

PM> Install-Package GroupDocs.Watermark

ابحث عن العلامات المائية في المستندات باستخدام C

Watermarker ، PossibleWatermarkCollection (مجموعة [PossibleWatermark][11] هي فئات من API للعثور على أنواع مختلفة من العلامات المائية في المستندات بمعايير بحث مختلفة وإزالتها بسرعة. فيما يلي الخطوات للبحث الأساسي عن جميع العلامات المائية في أي مستند يتم توفيره باستخدام C #. يمكنك تحسين البحث عن العلامات المائية وسيظهر هذا لاحقًا في هذه المقالة.

  • قم بإنشاء كائن فئة Watermarker باستخدام ملف المستند المصدر.
  • اتصل بطريقة البحث. سيعيد كل العلامات المائية الممكنة من المستند.
  • اجتياز مجموعة العلامات المائية لعرض البيانات أو تنفيذ أي إجراء على كل علامة مائية.
// ابحث عن جميع العلامات المائية في مستندات Word و Excel و PowerPoint و Visio و PDF باستخدام 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);
    }
}

إزالة العلامات المائية من المستندات في C

من جميع العلامات المائية التي تم البحث عنها ، يمكننا إزالة أي علامة مائية أو كل العلامات المائية مرة واحدة. الشيء الرئيسي هنا ، ما إذا كنت قد نجحت في العثور على العلامة (العلامات) المائية التي تريد حذفها أم لا. ماذا لو كان هناك العديد من الأنواع المختلفة للعلامات المائية في المستند؟ توفر واجهة برمجة التطبيقات (API) خيارات متنوعة لتحسين البحث عن العلامات المائية. يزيل الكود التالي العلامة المائية من مستند PDF عن طريق تحديد فهرس المجموعة باستخدام C #.

// قم بإزالة العلامات المائية من 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 (تعبير عادي) وقم بإزالتها
  • ابحث عن العلامة المائية بتنسيق نص محدد
  • البحث عن العلامات المائية للارتباط التشعبي وإزالتها

البحث عن وإزالة العلامات المائية بنص معين

يمكنك البحث عن العلامات المائية النصية بتحديد السلسلة بالضبط باستخدام كود 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]. يمكنك زيارة [الوثائق][13] لمزيد من التفاصيل. للاستفسارات ، قم بزيارة [المنتدى][14].

استنتاج

أعتقد أنك ستكون الآن أكثر ثقة في العثور على العلامات المائية النصية وإزالتها بالإضافة إلى العلامات المائية للصور من مستندات Word وجداول بيانات Excel وعروض Powerpoint التقديمية ومستندات PDF ورسومات Visio باستخدام C # داخل تطبيقات .NET.

أنظر أيضا

  • [أضف علامة مائية إلى الصور أو الصور في المستندات باستخدام C #][15]
  • [أضف علامة مائية إلى الصور بجافا][16]
  • [البحث عن وإزالة العلامات المائية من المستندات في Java][17]

[11]: https://apireference.groupdocs.com/watermark/net/groupdocs.watermark.search/possiblewatermark) [12]: https://docs.groupdocs.com/watermark/net/searching-watermarks/ [13]: https://docs.groupdocs.com/watermark/net/ [14]: https://forum.groupdocs.com/c/watermark [15]: https://blog.groupdocs.com/ar/2020/12/20/add-watermark-to-images-using-csharp-dotnet/ [16]: https://blog.groupdocs.com/ar/2020/09/15/add-watermark-to-images-in-java/ [17]: https://blog.groupdocs.com/ar/2020/11/30/find-and-remove-watermarks-from-documents-in-java/