PDF là định dạng phổ biến được sử dụng rộng rãi để chia sẻ tài liệu giữa các tổ chức và cá nhân. Có thể có tình huống bạn phải tìm và thay thế một số văn bản trong tài liệu PDF trước khi chia sẻ. Bạn có thể thực hiện việc này theo cách thủ công, nhưng sẽ mất nhiều thời gian hơn và kém hiệu quả hơn. Tùy chọn tốt hơn và nhanh hơn sẽ là thực hiện việc này theo chương trình. Trong bài viết này, bạn sẽ học cách tìm và thay thế văn bản trong tệp PDF bằng C ++.
- API C ++ để tìm và thay thế văn bản trong tệp PDF
- Tìm và thay thế văn bản trong PDF bằng C ++
- C ++ Tìm và Thay thế Văn bản trong một Trang PDF Cụ thể
- Thay thế Văn bản trong Vùng Trang PDF bằng C ++
- Tìm và thay thế văn bản trong tệp PDF bằng Biểu thức chính quy
- Nhận giấy phép miễn phí
API C ++ để tìm và thay thế văn bản trong tệp PDF
Aspose.PDF dành cho C ++ là thư viện C ++ để làm việc với các tệp PDF. Nó cung cấp một loạt các tính năng giúp bạn tự động hóa các khía cạnh khác nhau của quy trình làm việc PDF của mình. Một trong những tính năng như vậy là tìm và thay thế văn bản trong tệp PDF. Bạn có thể cài đặt API thông qua NuGet hoặc tải xuống trực tiếp từ phần tải xuống.
PM> Install-Package Aspose.PDF.Cpp
Tìm và thay thế văn bản trong PDF bằng C ++
Aspose.PDF cho C ++ cung cấp lớp TextFragmentAbsorber để tìm kiếm văn bản trong tài liệu PDF. Bạn khởi tạo lớp này với văn bản bạn muốn tìm và sử dụng nó để truy xuất tất cả các đoạn văn bản phù hợp. Khi tất cả các đoạn có sẵn, bạn lặp lại chúng và thay thế văn bản. Sau đây là các bước để tìm và thay thế văn bản trong tệp PDF bằng C ++.
- Tải tệp PDF bằng lớp Tài liệu.
- Tạo một phiên bản của lớp TextFragmentAbsorber và khởi tạo nó bằng văn bản bạn muốn tìm trong tệp PDF.
- Chấp nhận TextFragmentAbsorber cho các trang sử dụng Document-> getPages() -> Accept (System :: SharedPtrText::TextFragmentAbsorber khách truy cập) phương pháp.
- Truy xuất tất cả các lần xuất hiện văn bản bằng phương thức TextFragmentAbsorber-> getTextFragment().
- Lặp qua TextFragmentCollection và cập nhật văn bản bằng phương thức TextFragment-> setText (System :: String value).
- Lưu tệp PDF đã cập nhật bằng phương pháp Document-> Save (System :: String outputFileName).
Sau đây là mã mẫu để tìm và thay thế văn bản trong toàn bộ tệp PDF bằng C ++.
// Tải tệp PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.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
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// Chấp nhận chất hấp thụ cho tất cả các trang
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);
// Lấy các đoạn văn bản được trích xuất
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Lặp lại các mảnh vỡ
for (auto textFragment : textFragmentCollection)
{
// Cập nhật văn bản và các thuộc tính khác
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Lưu tài liệu PDF kết quả.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
C ++ Tìm và Thay thế Văn bản trong một Trang PDF Cụ thể
Có thể có những trường hợp bạn chỉ muốn tìm và thay thế văn bản trên một trang cụ thể hơn là toàn bộ tài liệu. Đối với điều này, hãy chấp nhận đối tượng TextFragmentAbsorber cho trang mà bạn muốn thay thế văn bản. 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.
- Tải tệp PDF bằng lớp Tài liệu.
- Tạo một phiên bản của lớp TextFragmentAbsorber và khởi tạo nó bằng văn bản mà bạn muốn tìm trong tệp PDF.
- Chấp nhận TextFragmentAbsorber cho trang cụ thể bằng cách sử dụng Document-> getPages() -> idxget (int32t index) -> Accept (System :: SharedPtrText::TextFragmentAbsorber khách truy cập) phương pháp.
- Truy xuất tất cả các lần xuất hiện văn bản bằng phương thức TextFragmentAbsorber-> getTextFragment().
- Lặp qua TextFragmentCollection và cập nhật văn bản bằng phương thức TextFragment-> setText (System :: String value).
- Lưu tệp PDF đã cập nhật bằng phương pháp Document-> Save (System :: String outputFileName).
Sau đây là mã mẫu để tìm và thay thế văn bản trên một trang PDF cụ thể bằng C ++.
// Tải tệp PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.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
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// Chấp nhận chất hấp thụ cho trang thứ hai của tài liệu
pdfDocument->get_Pages()->idx_get(2)->Accept(textFragmentAbsorber);
// Lấy các đoạn văn bản được trích xuất
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Lặp lại các mảnh vỡ
for (auto textFragment : textFragmentCollection)
{
// Cập nhật văn bản và các thuộc tính khác
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Lưu tài liệu PDF kết quả.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument2.pdf");
Thay thế Văn bản trong Vùng Trang PDF bằng C ++
Thay vì tìm kiếm trên toàn bộ trang, bạn có thể chỉ định vùng của trang mà bạn muốn thay thế văn bản. Đối với điều này, API cung cấp lớp Hình chữ nhật. Sau đây là các bước để tìm và thay thế văn bản trong một phần cụ thể của trang PDF.
- Tải tệp PDF bằng lớp Tài liệu.
- Tạo một phiên bản của lớp TextFragmentAbsorber và khởi tạo nó bằng văn bản mà bạn muốn tìm và thay thế trong tệp PDF.
- Đặt vùng trang để tìm kiếm bằng phương pháp TextFragmentAbsorber-> getTextSearchOptions() -> setRectangle (System :: SharedPtr value).
- Chấp nhận TextFragmentAbsorber cho trang cụ thể bằng cách sử dụng Document-> getPages() -> idxget (int32t index) -> Accept (System :: SharedPtrText::TextFragmentAbsorber khách truy cập) phương pháp.
- Truy xuất tất cả các lần xuất hiện văn bản bằng phương thức TextFragmentAbsorber-> getTextFragment().
- Lặp qua TextFragmentCollection và cập nhật văn bản bằng phương thức TextFragment-> setText (System :: String value).
- Lưu tệp PDF đã cập nhật bằng phương pháp Document-> Save (System :: String outputFileName).
Sau đây là mã mẫu để tìm và thay thế văn bản trong một vùng trang PDF cụ thể.
// Tải tệp PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.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
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// văn bản tìm kiếm trong giới hạn trang
textFragmentAbsorber->get_TextSearchOptions()->set_LimitToPageBounds(true);
// chỉ định vùng trang cho TextSearchOptions
textFragmentAbsorber->get_TextSearchOptions()->set_Rectangle(MakeObject<Rectangle>(100, 100, 800, 700));
// Chấp nhận chất hấp thụ cho trang đầu tiên của tài liệu
pdfDocument->get_Pages()->idx_get(1)->Accept(textFragmentAbsorber);
// Lấy các đoạn văn bản được trích xuất
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Lặp lại các mảnh vỡ
for (auto textFragment : textFragmentCollection)
{
// Cập nhật văn bản và các thuộc tính khác
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Lưu tài liệu PDF kết quả.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
Tìm và thay thế văn bản trong tệp PDF bằng Biểu thức chính quy
Aspose.PDF cho C ++ cũng cung cấp khả năng tìm kiếm văn bản bằng cách sử dụng biểu thức chính quy. Với biểu thức chính quy, bạn có thể tìm thấy văn bản như địa chỉ email hoặc số điện thoại, v.v. Đối với điều này, bạn phải chỉ định biểu thức chính quy thay vì chuỗi tìm kiếm và sử dụng lớp TextSearchOptions để cho biết rằng bạn đang sử dụng biểu thức để tìm kiếm. Sau đây là các bước để tìm và thay thế văn bản trong tệp PDF bằng biểu thức chính quy.
- Tải tệp PDF bằng lớp Tài liệu.
- Tạo một thể hiện của lớp TextFragmentAbsorber và khởi tạo nó bằng biểu thức chính quy mà bạn muốn sử dụng.
- Khởi tạo lớp TextSearchOptions và chuyển true cho phương thức khởi tạo của nó. Nó sẽ cho biết rằng bạn đang tìm kiếm bằng biểu thức chính quy.
- Gán đối tượng TextSearchOptions cho lớp TextFragmentAbsorber bằng cách sử dụng TextFragmentAbsorber-> setTextSearchOptions (System :: SharedPtrAspose::Pdf::Text::TextSearchOptions giá trị) phương pháp.
- Chấp nhận TextFragmentAbsorber cho các trang sử dụng Document-> getPages() -> Accept (System :: SharedPtrText::TextFragmentAbsorber khách truy cập) phương pháp.
- Truy xuất tất cả các lần xuất hiện văn bản bằng phương thức TextFragmentAbsorber-> getTextFragment().
- Lặp qua TextFragmentCollection và cập nhật văn bản bằng phương thức TextFragment-> setText (System :: String value).
- Lưu tệp PDF đã cập nhật bằng phương pháp Document-> Save (System :: String outputFileName).
Sau đây là mã mẫu để tìm và thay thế văn bản trong tệp PDF bằng biểu thức chính quy.
// Tải tệp PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 2.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
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"\\d{4} - \\d{4}"); // Like 1999-2000
// Đặt tùy chọn tìm kiếm văn bản để cho phép sử dụng cụm từ thông dụng
auto textSearchOptions = MakeObject<TextSearchOptions>(true);
textFragmentAbsorber->set_TextSearchOptions(textSearchOptions);
// Chấp nhận chất hấp thụ cho tất cả các trang của tài liệu
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);
// Lấy các đoạn văn bản được trích xuất
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Lặp lại các mảnh vỡ
for (auto textFragment : textFragmentCollection)
{
// Cập nhật văn bản và các thuộc tính khác
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Lưu tài liệu PDF kết quả.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
Nhận giấy phép miễn phí
Bạn có thể dùng thử API mà không có giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.
Sự kết luận
Trong bài viết này, bạn đã học cách tìm và thay thế văn bản trong tệp PDF bằng C ++. Bạn đã thấy cách thay thế văn bản trong toàn bộ tài liệu PDF, một trang PDF cụ thể hoặc một vùng cụ thể của trang. Hơn nữa, bạn đã học cách tìm kiếm và thay thế văn bản bằng biểu thức chính quy. Aspose.PDF cho C ++ là một API mạnh mẽ với nhiều tính năng bổ sung giúp làm việc với các tài liệu PDF trở nên thành công. Bạn có thể khám phá API chi tiết bằng cách sử dụng tài liệu chính thức. Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi trên diễn đàn.