Zakładki w pliku PDF są pomocne przy oznaczaniu interesujących miejsc w dokumencie. Umożliwiają one szybkie przeskakiwanie do określonego miejsca w dokumencie. Możesz znaleźć się w sytuacjach, w których musisz programowo dodawać, czytać, modyfikować lub usuwać zakładki w pliku PDF. W tym celu w tym artykule dowiesz się, jak pracować z zakładkami w plikach PDF przy użyciu C++.

C++ API do pracy z zakładkami w plikach PDF

Aspose.PDF for C++ to biblioteka C++, która umożliwia tworzenie, odczytywanie i aktualizowanie dokumentów PDF. Ponadto interfejs API obsługuje dodawanie, odczytywanie, modyfikowanie i usuwanie zakładek z plików PDF. Możesz zainstalować API przez NuGet lub pobrać bezpośrednio z sekcji downloads.

PM> Install-Package Aspose.PDF.Cpp

Dodaj zakładki w plikach PDF za pomocą C++

Poniżej przedstawiono kroki dodawania zakładki w pliku PDF.

Poniższy przykładowy kod ilustruje sposób dodawania zakładki do pliku PDF przy użyciu języka C++.

// Utwórz instancję klasy PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Załaduj dokument PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Utwórz zakładkę
editor->CreateBookmarkOfPage(u"Bookmark for page 1", 1);

// Zapisz dokument PDF
editor->Save(u"OutputDirectory\\AddBookmark_out.pdf");
Dane wyjściowe wygenerowane przez przykładowy kod

Dane wyjściowe wygenerowane przez przykładowy kod

Dodaj zagnieżdżone zakładki w plikach PDF

Możesz także dodawać zagnieżdżone zakładki przy użyciu interfejsu API Aspose.PDF for C++. Poniżej przedstawiono kroki dodawania zagnieżdżonych zakładek.

Poniższy przykładowy kod przedstawia sposób dodawania zagnieżdżonych zakładek w pliku PDF przy użyciu języka C++.

// Utwórz instancję klasy PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Załaduj dokument PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Utwórz pierwszą zakładkę podrzędną
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm1 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm1->set_PageNumber(1);
bm1->set_Title(u"First child");

// Utwórz drugą zakładkę podrzędną
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm2 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm2->set_PageNumber(2);
bm2->set_Title(u"Second child");

// Utwórz zakładkę rodzica
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");

// Ustaw zakładki podrzędne
System::SharedPtr<Aspose::Pdf::Facades::Bookmarks> bms = System::MakeObject<Aspose::Pdf::Facades::Bookmarks>();
bms->Add(bm1);
bms->Add(bm2);
bm->set_ChildItem(bms);

// Dodaj zakładki do pliku PDF
editor->CreateBookmarks(bm);

// Zapisz dokument PDF
editor->Save(u"OutputDirectory\\AddChildBookmark_out.pdf");
Dane wyjściowe wygenerowane przez przykładowy kod

Dane wyjściowe wygenerowane przez przykładowy kod

Czytaj zakładki z pliku PDF za pomocą C++

Aby odczytać zakładki, użyj metody PdfBookmarkEditor->ExtractBookmarks(). Poniżej przedstawiono kroki, aby odczytać zakładki z pliku PDF.

Poniższy przykładowy kod pokazuje, jak odczytywać zakładki z pliku PDF przy użyciu języka C++.

// Utwórz instancję klasy PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Załaduj dokument PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Pobierz wszystkie zakładki
System::SharedPtr <Bookmarks> bms = editor->ExtractBookmarks();

// Przejdź przez zakładki
for (System::SharedPtr<Bookmark> bm : bms) {
	
	// Wyświetl tytuł zakładki
	Console::WriteLine(bm->get_Title());

	// Wyświetl miejsce docelowe zakładki
	Console::WriteLine(bm->get_Destination());
}

Zmodyfikuj tytuł zakładki za pomocą C++

Poniżej przedstawiono kroki, aby zmodyfikować tytuł istniejącej zakładki w pliku PDF.

Poniższy przykładowy kod pokazuje, jak zmodyfikować tytuł istniejącej zakładki w pliku PDF.

// Utwórz instancję klasy PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Załaduj dokument PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Zmień tytuł zakładki
editor->ModifyBookmarks(u"bookmark for page 1", u"Page 1 Bookmark");

// Zapisz dokument PDF
editor->Save(u"OutputDirectory\\ModifyBookmark_out.pdf");

Usuń określoną zakładkę za pomocą C++

Interfejs API udostępnia metodę PdfBookmarkEditor->DeleteBookmarks(System::String title) służącą do usuwania określonej zakładki z pliku PDF. Poniżej przedstawiono kroki, aby usunąć określoną zakładkę.

Poniższy przykładowy kod pokazuje, jak usunąć określoną zakładkę przy użyciu języka C++.

// Utwórz instancję klasy PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Załaduj dokument PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Usuń określoną zakładkę
editor->DeleteBookmarks(u"bookmark for page 1");

// Zapisz dokument PDF
editor->Save(u"OutputDirectory\\DeleteParticularBookmark_out.pdf");

Usuń wszystkie zakładki w pliku PDF za pomocą C++

Zamiast usuwać zakładki pojedynczo, możesz usunąć wszystkie zakładki jednocześnie, używając metody PdfBookmarkEditor->DeleteBookmarks(). Poniżej przedstawiono kroki, aby usunąć wszystkie zakładki w pliku PDF.

Poniżej znajduje się przykładowy kod do usuwania wszystkich zakładek w pliku PDF.

// Utwórz instancję klasy PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Załaduj dokument PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Usuń wszystkie zakładki
editor->DeleteBookmarks();

// Zapisz dokument PDF
editor->Save(u"OutputDirectory\\DeleteAllBookmarks_out.pdf");

Uzyskaj bezpłatną licencję

Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.

Wniosek

W tym artykule nauczyłeś się, jak pracować z zakładkami w plikach PDF przy użyciu języka C++. W szczególności nauczyłeś się dodawać, czytać, modyfikować i usuwać zakładki w pliku PDF. Ponadto widziałeś, jak dodawać zagnieżdżone zakładki za pomocą Aspose.PDF for C++ API. Interfejs API zapewnia wiele dodatkowych funkcji do pracy z plikami PDF, które można szczegółowo zbadać, korzystając z oficjalnej dokumentacji. Jeśli masz jakiekolwiek pytania, skontaktuj się z nami na bezpłatnym forum pomocy technicznej.

Zobacz też