PDF 文件中的書籤有助於標記文檔中的興趣點。這些使您能夠快速跳轉到文檔中的特定點。您可能會發現自己需要以編程方式在 PDF 文件中添加、閱讀、修改或刪除書籤。為此,本文將教您如何使用 C++ 處理 PDF 文件中的書籤。

用於處理 PDF 文件中的書籤的 C++ API

Aspose.PDF for C++ 是一個 C++ 庫,允許您創建、閱讀和更新 PDF 文檔。此外,該 API 還支持在 PDF 文件中添加、閱讀、修改和刪除書籤。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。

PM> Install-Package Aspose.PDF.Cpp

使用 C++ 在 PDF 文件中添加書籤

以下是在 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 添加嵌套書籤。以下是添加嵌套書籤的步驟。

以下示例代碼顯示瞭如何使用 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 文件中讀取書籤的步驟。

以下示例代碼顯示瞭如何使用 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 文件中現有書籤標題的步驟。

以下示例代碼演示瞭如何修改 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 文件中刪除特定的書籤。以下是刪除特定書籤的步驟。

以下示例代碼顯示瞭如何使用 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 文件中所有書籤的步驟。

以下是刪除 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 文件的附加功能,您可以使用 官方文檔 詳細探索這些功能。如果您有任何疑問,請隨時通過 免費支持論壇 與我們聯繫。

也可以看看