Закладки в файле PDF помогают отметить интересные места в документе. Они позволяют быстро перейти к определенному месту в документе. Вы можете столкнуться с ситуациями, когда вам нужно программно добавлять, читать, изменять или удалять закладки в файле PDF. Для этого в этой статье вы узнаете, как работать с закладками в файлах PDF с помощью C++.
- C++ API для работы с закладками в файлах PDF
- Добавление закладок в PDF-файлы с помощью C++
- Добавление вложенных закладок в файлы PDF
- Чтение закладок из файла PDF с помощью С++
- Изменить заголовок закладки с помощью С++
- Удалить конкретную закладку с помощью С++
- Удалить все закладки в файле PDF с помощью С++
- Получить бесплатную лицензию
C++ API для работы с закладками в файлах PDF
Aspose.PDF for C++ — это библиотека C++, позволяющая создавать, читать и обновлять PDF-документы. Кроме того, API поддерживает добавление, чтение, изменение и удаление закладок из файлов PDF. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела загрузки.
PM> Install-Package Aspose.PDF.Cpp
Добавление закладок в PDF-файлы с помощью C++
Ниже приведены шаги для добавления закладки в файл PDF.
- Во-первых, создайте экземпляр класса PdfBookmarkEditor.
- Загрузите документ PDF с помощью PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Создайте закладку с помощью метода PdfBookmarkEditor->CreateBookmarkOfPage(System::String bookmarkName, int32t pageNumber).
- Сохраните PDF-документ с помощью метода 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\\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.
- Загрузите документ PDF с помощью PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Создавайте закладки с помощью класса Bookmark.
- Добавьте дочерние закладки в экземпляр класса Bookmarks и установите его как дочерний элемент родительской закладки с помощью bookmark->setChildItems(System::SharedPtr значение) метод.
- Добавьте закладки в документ PDF, используя PdfBookmarkEditor->CreateBookmarks(System::SharedPtr закладка).
- Наконец, сохраните документ PDF с помощью метода 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\\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 с помощью С++
Чтобы прочитать закладки, используйте метод PdfBookmarkEditor->ExtractBookmarks(). Ниже приведены шаги для чтения закладок из файла PDF.
- Создайте экземпляр класса PdfBookmarkEditor.
- Загрузите документ PDF с помощью PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Получите все закладки с помощью метода PdfBookmarkEditor->ExtractBookmarks().
- Прокрутите закладки, чтобы получить отдельные закладки.
- Прочтите свойства закладок.
В следующем примере кода показано, как читать закладки из файла 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());
}
Изменить заголовок закладки с помощью С++
Ниже приведены шаги по изменению заголовка существующей закладки в файле PDF.
- Создайте экземпляр класса PdfBookmarkEditor.
- Загрузите документ PDF с помощью PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Измените заголовок закладки с помощью метода PdfBookmarkEditor->ModifyBookmarks(System::String sTitle, System::String dTitle).
- Сохраните PDF-документ с помощью метода PdfBookmarkEditor->Save(System::String destFile).
В следующем примере кода показано, как изменить заголовок существующей закладки в файле 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");
Удалить конкретную закладку с помощью С++
API предоставляет метод PdfBookmarkEditor->DeleteBookmarks(System::String title) для удаления определенной закладки из файла PDF. Ниже приведены шаги для удаления конкретной закладки.
- Создайте экземпляр класса PdfBookmarkEditor.
- Загрузите документ PDF с помощью PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Удалите нужную закладку с помощью метода PdfBookmarkEditor->DeleteBookmarks(System::String title).
- Сохраните PDF-документ с помощью метода PdfBookmarkEditor->Save(System::String destFile).
В следующем примере кода показано, как удалить определенную закладку с помощью 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 с помощью С++
Вместо того, чтобы удалять закладки по одной, вы можете удалить все закладки сразу, используя метод PdfBookmarkEditor->DeleteBookmarks(). Ниже приведены шаги для удаления всех закладок в файле PDF.
- Создайте экземпляр класса PdfBookmarkEditor.
- Загрузите документ PDF с помощью PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Удалите все закладки с помощью метода PdfBookmarkEditor->DeleteBookmarks().
- Сохраните PDF-документ с помощью метода PdfBookmarkEditor->Save(System::String destFile).
Ниже приведен пример кода для удаления всех закладок в файле 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-файлами, которые вы можете подробно изучить, используя официальную документацию. Если у вас есть какие-либо вопросы, свяжитесь с нами на бесплатном форуме поддержки.