PDF 文件中的書籤有助於標記文檔中的興趣點。這些使您能夠快速跳轉到文檔中的特定點。您可能會發現自己需要以編程方式在 PDF 文件中添加、閱讀、修改或刪除書籤。為此,本文將教您如何使用 C++ 處理 PDF 文件中的書籤。
- 用於處理 PDF 文件中的書籤的 C++ API
- 使用 C++ 在 PDF 文件中添加書籤
- 在 PDF 文件中添加嵌套書籤
- 使用 C++ 從 PDF 文件中讀取書籤
- 使用C++修改書籤標題
- 使用 C++ 刪除特定書籤
- 使用 C++ 刪除 PDF 文件中的所有書籤
- 獲得免費許可證
用於處理 PDF 文件中的書籤的 C++ API
Aspose.PDF for C++ 是一個 C++ 庫,允許您創建、閱讀和更新 PDF 文檔。此外,該 API 還支持在 PDF 文件中添加、閱讀、修改和刪除書籤。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。
PM> Install-Package Aspose.PDF.Cpp
使用 C++ 在 PDF 文件中添加書籤
以下是在 PDF 文件中添加書籤的步驟。
- 首先,創建 PdfBookmarkEditor 類的一個實例。
- 使用 PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 PdfBookmarkEditor->CreateBookmarkOfPage(System::String bookmarkName, int32t pageNumber) 方法創建書籤。
- 使用 PdfBookmarkEditor->Save(System::String destFile) 方法保存 PDF 文檔。
以下示例代碼演示瞭如何使用 C++ 在 PDF 文件中添加書籤。
// 創建 PdfBookmarkEditor 類的實例
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// 加載 PDF 文檔
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");
// 創建書籤
editor->CreateBookmarkOfPage(u"Bookmark for page 1", 1);
// 保存 PDF 文檔
editor->Save(u"OutputDirectory\\AddBookmark_out.pdf");
在 PDF 文件中添加嵌套書籤
您還可以使用 Aspose.PDF for C++ API 添加嵌套書籤。以下是添加嵌套書籤的步驟。
- 創建 PdfBookmarkEditor 類的實例。
- 使用 PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 Bookmark 類創建書籤。
- 將子書籤添加到 Bookmarks 類的實例中,並使用 bookmark->setChildItems(System::SharedPtr) 將其設置為父書籤的子項值) 方法。
- 使用 PdfBookmarkEditor->CreateBookmarks(System::SharedPtr書籤) 方法。
- 最後,使用 PdfBookmarkEditor->Save(System::String destFile) 方法保存 PDF 文檔。
以下示例代碼顯示瞭如何使用 C++ 在 PDF 文件中添加嵌套書籤。
// 創建 PdfBookmarkEditor 類的實例
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// 加載 PDF 文檔
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");
// 創建第一個子書籤
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm1 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm1->set_PageNumber(1);
bm1->set_Title(u"First child");
// 創建第二個子書籤
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm2 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm2->set_PageNumber(2);
bm2->set_Title(u"Second child");
// 創建父書籤
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");
// 設置子書籤
System::SharedPtr<Aspose::Pdf::Facades::Bookmarks> bms = System::MakeObject<Aspose::Pdf::Facades::Bookmarks>();
bms->Add(bm1);
bms->Add(bm2);
bm->set_ChildItem(bms);
// 將書籤添加到 PDF 文件
editor->CreateBookmarks(bm);
// 保存 PDF 文檔
editor->Save(u"OutputDirectory\\AddChildBookmark_out.pdf");
使用 C++ 從 PDF 文件中讀取書籤
要閱讀書籤,請使用 PdfBookmarkEditor->ExtractBookmarks() 方法。以下是從 PDF 文件中讀取書籤的步驟。
- 創建 PdfBookmarkEditor 類的實例。
- 使用 PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 PdfBookmarkEditor->ExtractBookmarks() 方法檢索所有書籤。
- 遍曆書簽以檢索單個書籤。
- 閱讀書籤的屬性。
以下示例代碼顯示瞭如何使用 C++ 從 PDF 文件中讀取書籤。
// 創建 PdfBookmarkEditor 類的實例
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// 加載 PDF 文檔
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// 檢索所有書籤
System::SharedPtr <Bookmarks> bms = editor->ExtractBookmarks();
// 循環瀏覽書籤
for (System::SharedPtr<Bookmark> bm : bms) {
// 顯示書籤的標題
Console::WriteLine(bm->get_Title());
// 顯示書籤的目的地
Console::WriteLine(bm->get_Destination());
}
使用C++修改書籤標題
以下是修改 PDF 文件中現有書籤標題的步驟。
- 創建 PdfBookmarkEditor 類的實例。
- 使用 PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 PdfBookmarkEditor->ModifyBookmarks(System::String sTitle, System::String dTitle) 方法修改書籤的標題。
- 使用 PdfBookmarkEditor->Save(System::String destFile) 方法保存 PDF 文檔。
以下示例代碼演示瞭如何修改 PDF 文件中現有書籤的標題。
// 創建 PdfBookmarkEditor 類的實例
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// 加載 PDF 文檔
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// 修改書籤標題
editor->ModifyBookmarks(u"bookmark for page 1", u"Page 1 Bookmark");
// 保存 PDF 文檔
editor->Save(u"OutputDirectory\\ModifyBookmark_out.pdf");
使用 C++ 刪除特定書籤
API 提供了 PdfBookmarkEditor->DeleteBookmarks(System::String title) 方法來從 PDF 文件中刪除特定的書籤。以下是刪除特定書籤的步驟。
- 創建 PdfBookmarkEditor 類的實例。
- 使用 PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 PdfBookmarkEditor->DeleteBookmarks(System::String title) 方法刪除所需的書籤。
- 使用 PdfBookmarkEditor->Save(System::String destFile) 方法保存 PDF 文檔。
以下示例代碼顯示瞭如何使用 C++ 刪除特定書籤。
// 創建 PdfBookmarkEditor 類的實例
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// 加載 PDF 文檔
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// 刪除特定書籤
editor->DeleteBookmarks(u"bookmark for page 1");
// 保存 PDF 文檔
editor->Save(u"OutputDirectory\\DeleteParticularBookmark_out.pdf");
使用 C++ 刪除 PDF 文件中的所有書籤
您可以使用 PdfBookmarkEditor->DeleteBookmarks() 方法一次刪除所有書籤,而不是一次刪除一個書籤。以下是刪除 PDF 文件中所有書籤的步驟。
- 創建 PdfBookmarkEditor 類的實例。
- 使用 PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 PdfBookmarkEditor->DeleteBookmarks() 方法刪除所有書籤。
- 使用 PdfBookmarkEditor->Save(System::String destFile) 方法保存 PDF 文檔。
以下是刪除 PDF 文件中所有書籤的示例代碼。
// 創建 PdfBookmarkEditor 類的實例
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// 加載 PDF 文檔
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// 刪除所有書籤
editor->DeleteBookmarks();
// 保存 PDF 文檔
editor->Save(u"OutputDirectory\\DeleteAllBookmarks_out.pdf");
獲得免費許可證
您可以通過申請 免費的臨時許可證 來試用沒有評估限制的 API。
結論
在本文中,您學習瞭如何使用 C++ 處理 PDF 文件中的書籤。具體來說,您已經學習瞭如何在 PDF 文件中添加、閱讀、修改和刪除書籤。此外,您還了解瞭如何使用 Aspose.PDF for C++ API 添加嵌套書籤。 API 提供了許多用於處理 PDF 文件的附加功能,您可以使用 官方文檔 詳細探索這些功能。如果您有任何疑問,請隨時通過 免費支持論壇 與我們聯繫。