Dấu trang trong tệp PDF rất hữu ích để đánh dấu các điểm quan tâm trong tài liệu. Những điều này cho phép bạn nhanh chóng chuyển đến một điểm cụ thể trong tài liệu. Bạn có thể rơi vào tình huống cần thêm, đọc, sửa đổi hoặc xóa dấu trang trong tệp PDF theo chương trình. Vì vậy, bài viết này sẽ hướng dẫn bạn cách làm việc với dấu trang trong tệp PDF bằng C ++.

API C ++ để làm việc với dấu trang trong tệp PDF

Aspose.PDF for C ++ là thư viện C ++ cho phép bạn tạo, đọc và cập nhật tài liệu PDF. Hơn nữa, API hỗ trợ thêm, đọc, sửa đổi và xóa dấu trang khỏi 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

Thêm Dấu trang trong Tệp PDF bằng C ++

Sau đây là các bước để thêm dấu trang trong tệp PDF.

Mã mẫu sau đây trình bày cách thêm dấu trang trong tệp PDF bằng C ++.

// Tạo một phiên bản của lớp PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Tải tài liệu PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Tạo Dấu trang
editor->CreateBookmarkOfPage(u"Bookmark for page 1", 1);

// Lưu tài liệu PDF
editor->Save(u"OutputDirectory\\AddBookmark_out.pdf");
Đầu ra được tạo bởi mã mẫu

Đầu ra được tạo bởi mã mẫu

Thêm dấu trang lồng nhau trong tệp PDF

Bạn cũng có thể thêm dấu trang lồng nhau bằng cách sử dụng API Aspose.PDF cho C ++. Sau đây là các bước để thêm dấu trang lồng nhau.

Mã mẫu sau đây cho biết cách thêm dấu trang lồng nhau trong tệp PDF bằng C ++.

// Tạo một phiên bản của lớp PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Tải tài liệu PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Tạo Dấu trang con đầu tiên
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm1 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm1->set_PageNumber(1);
bm1->set_Title(u"First child");

// Tạo Dấu trang con thứ hai
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm2 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm2->set_PageNumber(2);
bm2->set_Title(u"Second child");

// Tạo Dấu trang gốc
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm->set_Action(u"GoTo");
bm->set_PageNumber(1);
bm->set_Title(u"Parent");

// Đặt Dấu trang con
System::SharedPtr<Aspose::Pdf::Facades::Bookmarks> bms = System::MakeObject<Aspose::Pdf::Facades::Bookmarks>();
bms->Add(bm1);
bms->Add(bm2);
bm->set_ChildItem(bms);

// Thêm Dấu trang vào tệp PDF
editor->CreateBookmarks(bm);

// Lưu tài liệu PDF
editor->Save(u"OutputDirectory\\AddChildBookmark_out.pdf");
Đầu ra được tạo bởi mã mẫu

Đầu ra được tạo bởi mã mẫu

Đọc Dấu trang từ Tệp PDF bằng C ++

Để đọc dấu trang, hãy sử dụng phương pháp PdfBookmarkEditor-> ExtractBookmarks(). Sau đây là các bước để đọc dấu trang từ tệp PDF.

Mã mẫu sau đây cho biết cách đọc dấu trang từ tệp PDF bằng C ++.

// Tạo một phiên bản của lớp PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Tải tài liệu PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Lấy tất cả các Dấu trang
System::SharedPtr <Bookmarks> bms = editor->ExtractBookmarks();

// Lặp qua các Dấu trang
for (System::SharedPtr<Bookmark> bm : bms) {
	
	// Hiển thị tiêu đề của Dấu trang
	Console::WriteLine(bm->get_Title());

	// Hiển thị điểm đến của Dấu trang
	Console::WriteLine(bm->get_Destination());
}

Sửa đổi Tiêu đề Dấu trang bằng C ++

Sau đây là các bước để sửa đổi tiêu đề của dấu trang hiện có trong tệp PDF.

Mã mẫu sau đây trình bày cách sửa đổi tiêu đề của dấu trang hiện có trong tệp PDF.

// Tạo một phiên bản của lớp PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Tải tài liệu PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Sửa đổi tiêu đề Dấu trang
editor->ModifyBookmarks(u"bookmark for page 1", u"Page 1 Bookmark");

// Lưu tài liệu PDF
editor->Save(u"OutputDirectory\\ModifyBookmark_out.pdf");

Xóa một Dấu trang Cụ thể bằng C ++

API cung cấp phương thức PdfBookmarkEditor-> DeleteBookmarks (System :: String title) để xóa một dấu trang cụ thể khỏi tệp PDF. Sau đây là các bước để xóa một dấu trang cụ thể.

Mã mẫu sau đây cho thấy cách xóa một dấu trang cụ thể bằng C ++.

// Tạo một phiên bản của lớp PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Tải tài liệu PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Xóa một Dấu trang cụ thể
editor->DeleteBookmarks(u"bookmark for page 1");

// Lưu tài liệu PDF
editor->Save(u"OutputDirectory\\DeleteParticularBookmark_out.pdf");

Xóa tất cả Dấu trang trong Tệp PDF bằng C ++

Thay vì xóa từng dấu trang một, bạn có thể xóa tất cả các dấu trang cùng một lúc bằng phương pháp PdfBookmarkEditor-> DeleteBookmarks(). Sau đây là các bước để xóa tất cả các dấu trang trong tệp PDF.

Sau đây là mã mẫu để xóa tất cả các dấu trang trong tệp PDF.

// Tạo một phiên bản của lớp PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Tải tài liệu PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Xóa tất cả các Dấu trang
editor->DeleteBookmarks();

// Lưu tài liệu PDF
editor->Save(u"OutputDirectory\\DeleteAllBookmarks_out.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 làm việc với dấu trang trong tệp PDF bằng C ++. Cụ thể, bạn đã học cách thêm, đọc, sửa đổi và xóa dấu trang trong tệp PDF. Hơn nữa, bạn đã thấy cách thêm dấu trang lồng nhau bằng cách sử dụng API Aspose.PDF cho C ++. API cung cấp nhiều tính năng bổ sung để làm việc với các tệp PDF mà bạn có thể khám phá 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 hỗ trợ miễn phí.

Xem thêm