I segnalibri in un file PDF sono utili per contrassegnare i punti di interesse nel documento. Questi ti consentono di saltare rapidamente a un punto specifico del documento. Potresti trovarti in situazioni in cui devi aggiungere, leggere, modificare o eliminare i segnalibri in un file PDF a livello di codice. Per questo, questo articolo ti insegnerà come lavorare con i segnalibri nei file PDF usando C++.

API C++ per lavorare con i segnalibri nei file PDF

Aspose.PDF for C++ è una libreria C++ che consente di creare, leggere e aggiornare documenti PDF. Inoltre, l’API supporta l’aggiunta, la lettura, la modifica e la rimozione di segnalibri dai file PDF. Puoi installare l’API tramite NuGet o scaricarla direttamente dalla sezione download.

PM> Install-Package Aspose.PDF.Cpp

Aggiungi segnalibri nei file PDF usando C++

Di seguito sono riportati i passaggi per aggiungere un segnalibro in un file PDF.

Il codice di esempio seguente mostra come aggiungere un segnalibro in un file PDF usando C++.

// Crea un'istanza della classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Carica il documento PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Crea il segnalibro
editor->CreateBookmarkOfPage(u"Bookmark for page 1", 1);

// Salva il documento PDF
editor->Save(u"OutputDirectory\\AddBookmark_out.pdf");
Output generato dal codice di esempio

Output generato dal codice di esempio

Aggiungi segnalibri nidificati nei file PDF

Puoi anche aggiungere segnalibri nidificati usando l’API Aspose.PDF per C++. Di seguito sono riportati i passaggi per l’aggiunta di segnalibri nidificati.

Il codice di esempio seguente mostra come aggiungere segnalibri nidificati in un file PDF usando C++.

// Crea un'istanza della classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Carica il documento PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Crea il primo segnalibro figlio
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm1 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm1->set_PageNumber(1);
bm1->set_Title(u"First child");

// Crea il secondo segnalibro figlio
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm2 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm2->set_PageNumber(2);
bm2->set_Title(u"Second child");

// Crea segnalibro genitore
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");

// Imposta i segnalibri figlio
System::SharedPtr<Aspose::Pdf::Facades::Bookmarks> bms = System::MakeObject<Aspose::Pdf::Facades::Bookmarks>();
bms->Add(bm1);
bms->Add(bm2);
bm->set_ChildItem(bms);

// Aggiungi i segnalibri al file PDF
editor->CreateBookmarks(bm);

// Salva il documento PDF
editor->Save(u"OutputDirectory\\AddChildBookmark_out.pdf");
Output generato dal codice di esempio

Output generato dal codice di esempio

Leggi i segnalibri da un file PDF usando C++

Per leggere i segnalibri, utilizzare il metodo PdfBookmarkEditor->ExtractBookmarks(). Di seguito sono riportati i passaggi per leggere i segnalibri da un file PDF.

Il codice di esempio seguente mostra come leggere i segnalibri da un file PDF usando C++.

// Crea un'istanza della classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Carica il documento PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Recupera tutti i segnalibri
System::SharedPtr <Bookmarks> bms = editor->ExtractBookmarks();

// Scorri i segnalibri
for (System::SharedPtr<Bookmark> bm : bms) {
	
	// Visualizza il titolo del segnalibro
	Console::WriteLine(bm->get_Title());

	// Visualizza la destinazione del segnalibro
	Console::WriteLine(bm->get_Destination());
}

Modifica il titolo del segnalibro usando C++

Di seguito sono riportati i passaggi per modificare il titolo di un segnalibro esistente in un file PDF.

Il codice di esempio seguente mostra come modificare il titolo di un segnalibro esistente in un file PDF.

// Crea un'istanza della classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Carica il documento PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Modifica il titolo del segnalibro
editor->ModifyBookmarks(u"bookmark for page 1", u"Page 1 Bookmark");

// Salva il documento PDF
editor->Save(u"OutputDirectory\\ModifyBookmark_out.pdf");

Elimina un particolare segnalibro usando C++

L’API fornisce il metodo PdfBookmarkEditor->DeleteBookmarks(System::String title) per eliminare un particolare segnalibro da un file PDF. Di seguito sono riportati i passaggi per eliminare un segnalibro specifico.

Il codice di esempio seguente mostra come eliminare un determinato segnalibro usando C++.

// Crea un'istanza della classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Carica il documento PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Elimina un particolare segnalibro
editor->DeleteBookmarks(u"bookmark for page 1");

// Salva il documento PDF
editor->Save(u"OutputDirectory\\DeleteParticularBookmark_out.pdf");

Elimina tutti i segnalibri in un file PDF utilizzando C++

Invece di eliminare i segnalibri uno alla volta, puoi rimuovere tutti i segnalibri contemporaneamente utilizzando il metodo PdfBookmarkEditor->DeleteBookmarks(). Di seguito sono riportati i passaggi per eliminare tutti i segnalibri in un file PDF.

Di seguito è riportato il codice di esempio per eliminare tutti i segnalibri in un file PDF.

// Crea un'istanza della classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Carica il documento PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Elimina tutti i segnalibri
editor->DeleteBookmarks();

// Salva il documento PDF
editor->Save(u"OutputDirectory\\DeleteAllBookmarks_out.pdf");

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo hai imparato a lavorare con i segnalibri nei file PDF usando C++. In particolare, hai imparato come aggiungere, leggere, modificare ed eliminare i segnalibri in un file PDF. Inoltre, hai visto come aggiungere segnalibri nidificati utilizzando l’API Aspose.PDF per C++. L’API fornisce molte funzionalità aggiuntive per lavorare con i file PDF che puoi esplorare in dettaglio utilizzando la documentazione ufficiale. In caso di domande, non esitare a contattarci sul forum di supporto gratuito.

Guarda anche