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
- Aggiungi segnalibri nei file PDF usando C++
- Aggiungi segnalibri nidificati nei file PDF
- Leggi i segnalibri da un file PDF usando C++
- Modifica il titolo del segnalibro usando C++
- Elimina un particolare segnalibro usando C++
- Elimina tutti i segnalibri in un file PDF utilizzando C++
- Ottieni una licenza gratuita
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.
- Innanzitutto, crea un’istanza della classe PdfBookmarkEditor.
- Carica il documento PDF utilizzando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Crea il segnalibro usando il metodo PdfBookmarkEditor->CreateBookmarkOfPage(System::String bookmarkName, int32t pageNumber).
- Salvare il documento PDF utilizzando il metodo PdfBookmarkEditor->Save(System::String destFile).
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](images/AddBookmarkPDFCpp.png#center)
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.
- Crea un’istanza della classe PdfBookmarkEditor.
- Carica il documento PDF utilizzando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Crea segnalibri utilizzando la classe Segnalibro.
- Aggiungi i segnalibri figlio all’istanza della classe Bookmarks e impostalo come figlio del segnalibro genitore utilizzando bookmark->setChildItems(System::SharedPtr valore).
- Aggiungi i segnalibri al documento PDF usando PdfBookmarkEditor->CreateBookmarks(System::SharedPtr segnalibro).
- Infine, salva il documento PDF utilizzando il metodo PdfBookmarkEditor->Save(System::String destFile).
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](images/AddNestedBookmarksPDFCpp.png#center)
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.
- Crea un’istanza della classe PdfBookmarkEditor.
- Carica il documento PDF utilizzando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Recupera tutti i segnalibri utilizzando il metodo PdfBookmarkEditor->ExtractBookmarks().
- Scorri i segnalibri per recuperare i singoli segnalibri.
- Leggi le proprietà dei segnalibri.
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.
- Crea un’istanza della classe PdfBookmarkEditor.
- Carica il documento PDF utilizzando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Modifica il titolo del segnalibro usando il metodo PdfBookmarkEditor->ModifyBookmarks(System::String sTitle, System::String dTitle).
- Salva il documento PDF utilizzando il metodo PdfBookmarkEditor->Save(System::String destFile).
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.
- Crea un’istanza della classe PdfBookmarkEditor.
- Carica il documento PDF utilizzando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Elimina il segnalibro desiderato utilizzando il metodo PdfBookmarkEditor->DeleteBookmarks(System::String title).
- Salva il documento PDF utilizzando il metodo PdfBookmarkEditor->Save(System::String destFile).
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.
- Crea un’istanza della classe PdfBookmarkEditor.
- Carica il documento PDF utilizzando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc).
- Elimina tutti i segnalibri utilizzando il metodo PdfBookmarkEditor->DeleteBookmarks().
- Salvare il documento PDF utilizzando il metodo PdfBookmarkEditor->Save(System::String destFile).
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.