Hôm nay, chúng ta sẽ xem cách tìm và xóa hình mờ khỏi tài liệu trong C#. Có thể có hình mờ dựa trên văn bản và hình ảnh trong tài liệu. Chúng tôi có thể dễ dàng tìm kiếm và lập trình xóa các hình mờ như vậy khỏi nhiều tài liệu được hỗ trợ PDF, Word, Excel, PowerPoint và Visio.

Các chủ đề sau sẽ được đề cập trong bài viết này:

Tìm và xóa Hình mờ khỏi Tài liệu bằng API GroupDocs

.NET API để xóa hình mờ

API hình mờ cho .NET - GroupDocs

GroupDocs.Watermark for .NET là một API đánh dấu chìm nhanh và hiệu quả, không yêu cầu phần mềm bổ sung. Nó cho phép thêm hình mờ vào tài liệu và hình ảnh theo cách mà các công cụ của bên thứ ba khó có thể xóa được. Nó cũng cho phép các nhà phát triển C# dễ dàng xóa hình mờ khỏi nhiều định dạng tệp Microsoft và OpenOffice của tài liệu soạn thảo văn bản, bảng tính, bản trình bày, bản vẽ Visio và tài liệu PDF trong các ứng dụng .NET. Tất cả các định dạng tệp được hỗ trợ được đề cập trong tài liệu.

Bây giờ, tôi sẽ đưa ra các ví dụ tìm và xóa hình mờ. Vì vậy, sẽ tốt hơn nếu bạn chuẩn bị môi trường trước bằng cách làm theo bất kỳ tùy chọn phù hợp nào sau đây:

PM> Install-Package GroupDocs.Watermark

Tìm hình mờ trong tài liệu bằng C#

Watermarker, PossibleWatermarkCollection(bộ sưu tập PossibleWatermarkCollection là các lớp API để tìm các loại hình mờ khác nhau trong tài liệu với các tiêu chí tìm kiếm khác nhau và xóa chúng nhanh chóng. Sau đây là các bước để tìm kiếm cơ bản tất cả các hình mờ trong bất kỳ tài liệu được cung cấp nào bằng C#. Bạn có thể tinh chỉnh thêm tìm kiếm hình mờ của mình và điều này sẽ được hiển thị ở phần sau của bài viết này.

  • Tạo đối tượng lớp Watermarker với tệp tài liệu nguồn.
  • Gọi phương thức Tìm kiếm. Nó sẽ trả về tất cả các hình mờ có thể có từ tài liệu.
  • Duyệt qua bộ sưu tập hình mờ để hiển thị dữ liệu hoặc thực hiện bất kỳ hành động nào trên từng hình mờ.
// Tìm tất cả các hình mờ trong Tài liệu Word, Excel, PowerPoint, Visio và PDF bằng 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);
    }
}

Xóa hình mờ khỏi tài liệu trong C#

Từ tất cả các hình mờ được tìm kiếm, chúng tôi có thể xóa bất kỳ hình mờ nào hoặc tất cả các hình mờ cùng một lúc. Vấn đề chính ở đây là bạn có tìm thấy thành công (các) hình mờ mà bạn muốn xóa hay không. Nếu có nhiều loại hình mờ khác nhau trong tài liệu thì sao? API cung cấp các tùy chọn khác nhau để tinh chỉnh tìm kiếm hình mờ của bạn. Đoạn mã sau xóa hình mờ khỏi tài liệu PDF bằng cách chỉ định chỉ mục của bộ sưu tập bằng C#.

// Xóa hình mờ khỏi PDF và các Tài liệu khác bằng C#
using (Watermarker watermarker = new Watermarker("filepath/documentWithWatermarks.pdf"))
{
    PossibleWatermarkCollection possibleWatermarks = watermarker.Search();

    // Xóa hình mờ tại chỉ mục đã chỉ định khỏi tài liệu.
    possibleWatermarks.RemoveAt(0);

    // Xóa hình mờ được chỉ định khỏi tài liệu.
    possibleWatermarks.Remove(possibleWatermarks[0]);

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

Tiêu chí tìm kiếm khác cho hình mờ

Có nhiều cách khác để tìm hình mờ với các tiêu chí nhất định. Sau khi tìm kiếm chọn lọc, chúng tôi có thể xóa (các) hình mờ khỏi bộ sưu tập bằng cách sử dụng phương pháp Remove, RemoveAt hoặc Clear tương ứng. Dưới đây là một số cách để tìm hình mờ từ các tài liệu được cung cấp:

  • Tìm và xóa hình mờ với văn bản cụ thể
  • Tìm kiếm hình mờ bằng RegEx (Biểu thức chính quy) và xóa
  • Tìm kiếm hình mờ với định dạng văn bản được chỉ định
  • Tìm và xóa hình mờ siêu liên kết

Tìm và xóa hình mờ bằng văn bản cụ thể

Bạn có thể tìm kiếm hình mờ văn bản bằng cách chỉ định chuỗi chính xác bằng mã C# sau:

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

Tìm kiếm Hình mờ bằng RegEx và Xóa

Nếu có một số mẫu trong văn bản của hình mờ, bạn có thể cung cấp biểu thức chính quy (RegEx) để tìm kiếm các hình mờ này và có thể xóa sau tương ứng bằng cách sử dụng mã C# sau. Mã này sẽ tìm nạp tất cả các hình mờ bằng ©YYYY.

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

Tìm và Xóa Hình mờ với Định dạng Văn bản Cụ thể

Bạn cũng có thể tìm thấy các hình mờ có một số định dạng văn bản cụ thể như Tên phông chữ, cỡ chữ tối thiểu/tối đa, in đậm/nghiêng/gạch chân, v.v.

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

Tìm và loại bỏ hình mờ siêu liên kết

Bạn có thể sử dụng RegEx để tìm hình mờ văn bản có siêu liên kết trong nội dung. Sau đó, bạn có thể kiểm tra bộ sưu tập nếu có hình mờ siêu liên kết trong kết quả tìm kiếm. Chúng có thể được loại bỏ bằng bất kỳ phương pháp loại bỏ nào. Mã C# sau đây loại bỏ tất cả các hình mờ bằng siêu liên kết.

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

Có nhiều cách khác để tinh chỉnh tìm kiếm hình mờ của bạn. Bạn có thể truy cập tài liệu để biết thêm chi tiết. Đối với các truy vấn, hãy truy cập diễn đàn.

Sự kết luận

Tôi tin rằng giờ đây bạn sẽ tự tin hơn trong việc tìm và xóa hình mờ văn bản cũng như hình mờ hình ảnh khỏi tài liệu Word, bảng tính Excel, bản trình bày Powerpoint, tài liệu PDF và bản vẽ Visio bằng C# trong các ứng dụng .NET của mình.

Xem thêm