C# tìm và thay thế văn bản trong PDF

Tùy chọn tìm và thay thế cho phép thay thế một đoạn văn bản cụ thể trong tài liệu trong một lần. Bằng cách này, bạn không phải định vị và cập nhật từng lần xuất hiện của văn bản trong toàn bộ tài liệu theo cách thủ công. Bài viết này thậm chí còn đi xa hơn một bước và đề cập đến cách tự động hóa tính năng tìm và thay thế văn bản trong tài liệu PDF. Đặc biệt, bạn sẽ học cách tìm và thay thế văn bản trong PDF bằng C# .NET. Chúng tôi cũng sẽ trình bày cách thay thế văn bản trong một trang cụ thể hoặc một vùng trang bằng C#..

C# .NET API để tìm và thay thế văn bản trong PDF - Tải xuống miễn phí

Aspose.PDF for .NET là thư viện lớp C# cung cấp các tính năng thao tác PDF cơ bản cũng như nâng cao cho các ứng dụng .NET. API cũng cho phép bạn tìm và thay thế văn bản trong tệp PDF theo nhiều cách khác nhau một cách liền mạch. Bạn có thể tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

PM> Install-Package Aspose.PDF

Tìm và thay thế văn bản trong PDF bằng C#

Sau đây là các bước để tìm và thay thế văn bản trong tài liệu PDF.

Mẫu mã sau đây cho biết cách tìm và thay thế văn bản trong PDF bằng C#.

// mở tài liệu
Document pdfDocument = new Document("Document.pdf");

// Tạo đối tượng TextAbsorber để tìm tất cả các phiên bản của cụm từ tìm kiếm đầu vào
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Chấp nhận chất hấp thụ cho tất cả các trang
pdfDocument.Pages.Accept(textFragmentAbsorber);

// Lấy các đoạn văn bản được trích xuất
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Vòng qua các mảnh vỡ
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Cập nhật văn bản và các thuộc tính khác
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
            
// Lưu tài liệu PDF kết quả.
pdfDocument.Save("updated-document.pdf");

C# Thay thế văn bản trong một trang PDF cụ thể

Sau đây là các bước để tìm và thay thế văn bản trên một trang cụ thể trong tài liệu PDF.

  • Sử dụng lớp Document để tải tài liệu PDF bằng đường dẫn của nó.
  • Tạo một thể hiện của lớp TextFragmentAbsorber và cung cấp cụm từ tìm kiếm cho hàm tạo của nó.
  • Chấp nhận bộ hấp thụ văn bản cho trang mong muốn bằng cách sử dụng [Document.Pages1.Accept(TextFragmentAbsorber)]12.
  • Lặp lại bộ sưu tập TextFragmentAbsorber.TextFragments được tìm thấy và thay thế văn bản trong từng đoạn.
  • Lưu tài liệu PDF đã cập nhật bằng phương pháp Document.Save(String).

Mẫu mã sau đây cho biết cách tìm và thay thế văn bản trong một trang cụ thể của PDF bằng C#.

// mở tài liệu
Document pdfDocument = new Document("Document.pdf");

// Tạo đối tượng TextAbsorber để tìm tất cả các phiên bản của cụm từ tìm kiếm đầu vào
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Chấp nhận chất hấp thụ cho mong muốn
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Lấy các đoạn văn bản được trích xuất
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Vòng qua các mảnh vỡ
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Cập nhật văn bản và các thuộc tính khác
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Lưu tài liệu PDF kết quả.
pdfDocument.Save("updated-document.pdf");

Thay thế văn bản trong vùng trang PDF trong C#

Bạn cũng có thể tìm và thay thế văn bản trong một vùng cụ thể của trang trong tài liệu PDF. Các bước sau đây cho biết cách xác định một vùng cụ thể rồi thay thế văn bản bên trong vùng đó.

Mẫu mã sau đây cho biết cách tìm và thay thế văn bản trong một vùng trang cụ thể trong PDF bằng C#.

// tải tệp PDF
Document pdf = new Document("Document.pdf");

// khởi tạo đối tượng TextFragment Absorber
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();

// tìm kiếm văn bản trong giới hạn trang
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;

// chỉ định vùng trang cho Tùy chọn tìm kiếm văn bản
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);

// tìm kiếm văn bản từ trang đầu tiên của tệp PDF
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);

// lặp qua TextFragment riêng lẻ
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
    // cập nhật văn bản thành ký tự trống
    tf.Text = "";
}

// lưu tệp PDF đã cập nhật sau khi thay thế văn bản
pdf.Save("output.pdf");

C# Thay thế văn bản trong PDF bằng biểu thức chính quy (Regex)

Bạn cũng có thể sử dụng các biểu thức chính quy để tìm và thay thế các lần xuất hiện văn bản khớp với một mẫu cụ thể. Đối với điều này, bạn chỉ cần cung cấp một biểu thức chính quy thay vì cụm từ tìm kiếm đơn giản và sử dụng TextSearchOptions. Sau đây là các bước để làm như vậy.

Mẫu mã sau đây cho biết cách tìm và thay thế văn bản trong PDF bằng biểu thức chính quy bằng C#.

// mở tài liệu
Document pdfDocument = new Document("Document.pdf");

// Tạo đối tượng TextAbsorber để tìm tất cả các cụm từ khớp với biểu thức chính quy
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000

// Đặt tùy chọn tìm kiếm văn bản để chỉ định cách sử dụng cụm từ thông dụng
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

// Chấp nhận chất hấp thụ cho một trang
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Lấy các đoạn văn bản được trích xuất
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Vòng qua các mảnh vỡ
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Cập nhật văn bản và các thuộc tính khác
    textFragment.Text = "New Phrase";
    // Đặt thành một thể hiện của một đối tượng.
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Lưu PDF
pdfDocument.Save("output.pdf");

Sự kết luận

Ngày nay, tự động hóa PDF được áp dụng rộng rãi để thao tác các tài liệu PDF từ bên trong ứng dụng web hoặc máy tính để bàn. Bài viết này đề cập đến một tính năng tự động hóa PDF hữu ích để tìm và thay thế văn bản trong PDF bằng C#. Hướng dẫn từng bước và các mẫu mã đã chỉ ra cách tìm và thay thế văn bản trong toàn bộ tệp PDF, một trang cụ thể trong PDF hoặc một vùng trang. Bạn có thể khám phá các tính năng nâng cao hơn bằng cách sử dụng tài liệu của API.

Xem thêm