Закладки у файлі PDF корисні для позначення цікавих місць у документі. Вони дозволяють швидко переходити до певного місця в документі. Ви можете опинитися в ситуації, коли вам потрібно додати, прочитати, змінити або видалити закладки у файлі PDF програмним шляхом. Для цього ця стаття навчить вас працювати із закладками у файлах PDF за допомогою C++.

C++ API для роботи із закладками у PDF-файлах

Aspose.PDF for C++ — це бібліотека C++, яка дозволяє створювати, читати та оновлювати документи PDF. Крім того, API підтримує додавання, читання, зміну та видалення закладок із файлів PDF. Ви можете встановити API через NuGet або завантажити його безпосередньо з розділу завантажень.

PM> Install-Package Aspose.PDF.Cpp

Додайте закладки у файли PDF за допомогою C++

Нижче наведено кроки, щоб додати закладку у файл PDF.

Наведений нижче зразок коду демонструє, як додати закладку у файл PDF за допомогою C++.

// Створіть екземпляр класу 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

Ви також можете додавати вкладені закладки за допомогою API Aspose.PDF for C++. Нижче наведено кроки для додавання вкладених закладок.

У наведеному нижче прикладі коду показано, як додати вкладені закладки у файл PDF за допомогою C++.

// Створіть екземпляр класу PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Завантажте документ PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Створіть 1-шу дочірню закладку
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");
Результат, згенерований зразком коду

Результат, згенерований зразком коду

Читайте закладки з файлу PDF за допомогою C++

Щоб прочитати закладки, скористайтеся методом PdfBookmarkEditor->ExtractBookmarks(). Нижче наведено кроки для читання закладок із файлу PDF.

У наведеному нижче прикладі коду показано, як читати закладки з PDF-файлу за допомогою C++.

// Створіть екземпляр класу 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");

Видалити всі закладки у файлі PDF за допомогою C++

Замість того, щоб видаляти закладки по одній, ви можете видалити всі закладки одночасно за допомогою методу 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 без оціночних обмежень, надіславши запит на безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як працювати із закладками у файлах PDF за допомогою C++. Зокрема, ви навчилися додавати, читати, змінювати та видаляти закладки у файлі PDF. Крім того, ви бачили, як додавати вкладені закладки за допомогою Aspose.PDF for C++ API. API надає багато додаткових функцій для роботи з файлами PDF, які ви можете детально вивчити, використовуючи офіційну документацію. Якщо у вас виникли запитання, зв’яжіться з нами на безкоштовному форумі підтримки.

Дивись також