Hari ini, kita akan melihat cara menemukan dan menghapus tanda air dari dokumen di C#. Mungkin ada tanda air berbasis teks dan gambar dalam dokumen. Kami dapat dengan mudah mencari dan secara terprogram menghapus tanda air tersebut dari banyak dokumen yang didukung PDF, Word, Excel, PowerPoint, dan Visio.

Topik-topik berikut akan dibahas dalam artikel ini:

Temukan dan Hapus Tanda Air dari Dokumen menggunakan GroupDocs API

.NET API untuk Penghapusan Tanda Air

API Tanda Air untuk .NET - GroupDocs

GroupDocs.Watermark for .NET adalah API watermarking yang cepat dan efisien yang tidak memerlukan perangkat lunak tambahan. Ini memungkinkan penambahan tanda air ke dokumen dan gambar sedemikian rupa sehingga sulit untuk dihapus oleh alat pihak ketiga. Itu juga memungkinkan pengembang C# dengan mudah menghapus tanda air dari banyak format file Microsoft dan OpenOffice dari dokumen pengolah kata, spreadsheet, presentasi, gambar Visio, dan dokumen PDF dalam aplikasi .NET. Semua format file yang didukung disebutkan dalam dokumentasi.

Sekarang, saya akan menunjukkan contoh yang akan menemukan dan menghapus watermark. Jadi, akan lebih baik jika Anda menyiapkan lingkungan terlebih dahulu dengan mengikuti salah satu opsi yang sesuai:

PM> Install-Package GroupDocs.Watermark

Temukan Tanda Air di Dokumen menggunakan C#

Watermarker, PossibleWatermarkCollection(kumpulan PossibleWatermark adalah class API untuk menemukan berbagai macam watermark pada dokumen dengan berbagai kriteria pencarian dan menghapusnya dengan cepat. Berikut langkah-langkahnya untuk pencarian dasar semua tanda air dalam dokumen yang disediakan menggunakan C#. Anda dapat mempersempit pencarian tanda air lebih lanjut dan ini akan ditampilkan nanti di artikel ini.

  • Buat objek kelas Watermarker dengan file dokumen sumber.
  • Panggil metode Pencarian. Ini akan mengembalikan semua tanda air yang mungkin dari dokumen.
  • Telusuri kumpulan tanda air untuk menampilkan data atau melakukan tindakan apa pun pada setiap tanda air.
// Temukan semua tanda air di Dokumen Word, Excel, PowerPoint, Visio, dan PDF menggunakan 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);
    }
}

Hapus Tanda Air dari Dokumen di C#

Dari semua watermark yang dicari, kita bisa menghilangkan watermark apa saja atau semua watermark sekaligus. Hal utama di sini, apakah Anda sudah berhasil menemukan watermark yang ingin Anda hapus atau tidak. Bagaimana jika ada banyak jenis watermark yang berbeda dalam sebuah dokumen? API memberikan berbagai opsi untuk mempersempit pencarian tanda air Anda. Kode berikut menghilangkan tanda air dari dokumen PDF dengan menentukan indeks koleksi menggunakan C#.

// Hapus tanda air dari PDF & Dokumen lain menggunakan C#
using (Watermarker watermarker = new Watermarker("filepath/documentWithWatermarks.pdf"))
{
    PossibleWatermarkCollection possibleWatermarks = watermarker.Search();

    // Hapus tanda air pada indeks yang ditentukan dari dokumen.
    possibleWatermarks.RemoveAt(0);

    // Hapus tanda air tertentu dari dokumen.
    possibleWatermarks.Remove(possibleWatermarks[0]);

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

Kriteria Pencarian Lainnya untuk Tanda Air

Masih banyak cara lain untuk mencari watermark dengan kriteria tertentu. Setelah pencarian selektif, kita dapat menghapus watermark dari koleksi dengan menggunakan metode Remove, RemoveAt, atau Clear yang sesuai. Berikut adalah beberapa cara untuk menemukan watermark dari dokumen yang disediakan:

  • Temukan dan hapus tanda air dengan teks tertentu
  • Cari tanda air dengan RegEx (Regular Expression) dan hapus
  • Cari tanda air dengan pemformatan teks yang ditentukan
  • Temukan dan hapus tanda air hyperlink

Temukan dan Hapus Tanda Air dengan Teks Tertentu

Anda dapat mencari tanda air teks dengan menentukan string yang tepat menggunakan kode C# berikut:

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

Cari Tanda Air dengan RegEx dan Hapus

Jika ada beberapa pola dalam teks tanda air, Anda dapat memberikan ekspresi reguler (RegEx) untuk mencari tanda air ini dan dapat menghapusnya nanti menggunakan kode C# berikut. Kode ini akan mengambil semua tanda air dengan ©YYYY.

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

Temukan dan Hapus Tanda Air dengan Pemformatan Teks Tertentu

Anda juga dapat menemukan tanda air yang memiliki beberapa pemformatan teks tertentu seperti Nama font, ukuran font min/maks, tebal/miring/garis bawah, dll.

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

Anda dapat menggunakan RegEx untuk menemukan tanda air teks yang memiliki hyperlink di konten. Nanti kamu bisa cek di collection jika ada hyperlink watermark di hasil pencarian. Ini dapat dihapus dengan salah satu metode penghapusan. Kode C# berikut menghapus semua watermark dengan hyperlink.

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

Ada banyak cara lain untuk menyaring pencarian tanda air. Anda dapat mengunjungi dokumentasi untuk detail lebih lanjut. Untuk pertanyaan, kunjungi forum.

Kesimpulan

Saya yakin Anda sekarang akan lebih percaya diri dalam menemukan dan menghapus tanda air teks serta tanda air gambar dari dokumen Word, spreadsheet Excel, presentasi Powerpoint, dokumen PDF, dan gambar Visio menggunakan C# dalam aplikasi .NET Anda.

Lihat juga