Bokmärken i en PDF-fil är användbara för att markera intressanta platser i dokumentet. Dessa gör att du snabbt kan hoppa till en specifik punkt i dokumentet. Du kan hamna i situationer där du behöver lägga till, läsa, ändra eller ta bort bokmärken i en PDF-fil programmatiskt. För det kommer den här artikeln att lära dig hur du arbetar med bokmärken i PDF-filer med C++.
- C++ API för att arbeta med bokmärken i PDF-filer
- Lägg till bokmärken i PDF-filer med C++
- Lägg till kapslade bokmärken i PDF-filer
- Läs bokmärken från en PDF-fil med C++
- Ändra bokmärkestitel med C++
- Ta bort ett visst bokmärke med C++
- Ta bort alla bokmärken i en PDF-fil med C++
- Skaffa en gratis licens
C++ API för att arbeta med bokmärken i PDF-filer
Aspose.PDF for C++ är ett C++-bibliotek som låter dig skapa, läsa och uppdatera PDF-dokument. Dessutom stöder API:et att lägga till, läsa, ändra och ta bort bokmärken från PDF-filer. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet downloads.
PM> Install-Package Aspose.PDF.Cpp
Lägg till bokmärken i PDF-filer med C++
Följande är stegen för att lägga till ett bokmärke i en PDF-fil.
- Skapa först en instans av klassen PdfBookmarkEditor.
- Ladda PDF-dokumentet med PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) metod.
- Skapa bokmärket med metoden PdfBookmarkEditor->CreateBookmarkOfPage(System::String bookmarkName, int32t pageNumber).
- Spara PDF-dokumentet med metoden PdfBookmarkEditor->Save(System::String destFile).
Följande exempelkod visar hur man lägger till ett bokmärke i en PDF-fil med C++.
// Skapa en instans av klassen PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Ladda PDF-dokumentet
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");
// Skapa bokmärket
editor->CreateBookmarkOfPage(u"Bookmark for page 1", 1);
// Spara PDF-dokumentet
editor->Save(u"OutputDirectory\\AddBookmark_out.pdf");
Lägg till kapslade bokmärken i PDF-filer
Du kan också lägga till kapslade bokmärken med Aspose.PDF för C++ API. Följande är stegen för att lägga till kapslade bokmärken.
- Skapa en instans av klassen PdfBookmarkEditor.
- Ladda PDF-dokumentet med PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) metod.
- Skapa bokmärken med klassen Bookmark.
- Lägg till de underordnade bokmärkena till instansen av klassen Bookmarks och ställ in den som ett underordnad bokmärke till det överordnade bokmärket med hjälp av bookmark->setChildItems(System::SharedPtr värde) metod.
- Lägg till bokmärkena i PDF-dokumentet med PdfBookmarkEditor->CreateBookmarks(System::SharedPtr bokmärke) metod.
- Slutligen sparar du PDF-dokumentet med metoden PdfBookmarkEditor->Save(System::String destFile).
Följande exempelkod visar hur du lägger till kapslade bokmärken i en PDF-fil med C++.
// Skapa en instans av klassen PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Ladda PDF-dokumentet
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");
// Skapa bokmärke för första barn
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm1 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm1->set_PageNumber(1);
bm1->set_Title(u"First child");
// Skapa bokmärke för andra barn
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm2 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm2->set_PageNumber(2);
bm2->set_Title(u"Second child");
// Skapa överordnat bokmärke
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");
// Ställ in underordnade bokmärken
System::SharedPtr<Aspose::Pdf::Facades::Bookmarks> bms = System::MakeObject<Aspose::Pdf::Facades::Bookmarks>();
bms->Add(bm1);
bms->Add(bm2);
bm->set_ChildItem(bms);
// Lägg till bokmärkena i PDF-filen
editor->CreateBookmarks(bm);
// Spara PDF-dokumentet
editor->Save(u"OutputDirectory\\AddChildBookmark_out.pdf");
Läs bokmärken från en PDF-fil med C++
För att läsa bokmärkena, använd metoden PdfBookmarkEditor->ExtractBookmarks(). Följande är stegen för att läsa bokmärken från en PDF-fil.
- Skapa en instans av klassen PdfBookmarkEditor.
- Ladda PDF-dokumentet med PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) metod.
- Hämta alla bokmärken med metoden PdfBookmarkEditor->ExtractBookmarks().
- Gå igenom bokmärkena för att hämta individuella bokmärken.
- Läs egenskaperna för bokmärkena.
Följande exempelkod visar hur man läser bokmärken från en PDF-fil med C++.
// Skapa en instans av klassen PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Ladda PDF-dokumentet
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// Hämta alla bokmärken
System::SharedPtr <Bookmarks> bms = editor->ExtractBookmarks();
// Gå igenom bokmärkena
for (System::SharedPtr<Bookmark> bm : bms) {
// Visa bokmärkets titel
Console::WriteLine(bm->get_Title());
// Visa destinationen för bokmärket
Console::WriteLine(bm->get_Destination());
}
Ändra bokmärkestitel med C++
Följande är stegen för att ändra titeln på ett befintligt bokmärke i en PDF-fil.
- Skapa en instans av klassen PdfBookmarkEditor.
- Ladda PDF-dokumentet med PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) metod.
- Ändra titeln på bokmärket med metoden PdfBookmarkEditor->ModifyBookmarks(System::String sTitle, System::String dTitle).
- Spara PDF-dokumentet med metoden PdfBookmarkEditor->Save(System::String destFile).
Följande exempelkod visar hur man ändrar titeln på ett befintligt bokmärke i en PDF-fil.
// Skapa en instans av klassen PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Ladda PDF-dokumentet
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// Ändra bokmärkets titel
editor->ModifyBookmarks(u"bookmark for page 1", u"Page 1 Bookmark");
// Spara PDF-dokumentet
editor->Save(u"OutputDirectory\\ModifyBookmark_out.pdf");
Ta bort ett visst bokmärke med C++
API:et tillhandahåller metoden PdfBookmarkEditor->DeleteBookmarks(System::String title) för att ta bort ett visst bokmärke från en PDF-fil. Följande är stegen för att ta bort ett specifikt bokmärke.
- Skapa en instans av klassen PdfBookmarkEditor.
- Ladda PDF-dokumentet med PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) metod.
- Ta bort det önskade bokmärket med metoden PdfBookmarkEditor->DeleteBookmarks(System::String title).
- Spara PDF-dokumentet med metoden PdfBookmarkEditor->Save(System::String destFile).
Följande exempelkod visar hur man tar bort ett visst bokmärke med C++.
// Skapa en instans av klassen PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Ladda PDF-dokumentet
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// Ta bort ett visst bokmärke
editor->DeleteBookmarks(u"bookmark for page 1");
// Spara PDF-dokumentet
editor->Save(u"OutputDirectory\\DeleteParticularBookmark_out.pdf");
Ta bort alla bokmärken i en PDF-fil med C++
Istället för att ta bort ett bokmärke i taget kan du ta bort alla bokmärken på en gång med metoden PdfBookmarkEditor->DeleteBookmarks(). Följande är stegen för att ta bort alla bokmärken i en PDF-fil.
- Skapa en instans av klassen PdfBookmarkEditor.
- Ladda PDF-dokumentet med PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) metod.
- Ta bort alla bokmärken med metoden PdfBookmarkEditor->DeleteBookmarks().
- Spara PDF-dokumentet med metoden PdfBookmarkEditor->Save(System::String destFile).
Följande är exempelkoden för att radera alla bokmärken i en PDF-fil.
// Skapa en instans av klassen PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Ladda PDF-dokumentet
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// Ta bort alla bokmärken
editor->DeleteBookmarks();
// Spara PDF-dokumentet
editor->Save(u"OutputDirectory\\DeleteAllBookmarks_out.pdf");
Skaffa en gratis licens
Du kan prova API:et utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.
Slutsats
I den här artikeln har du lärt dig hur du arbetar med bokmärken i PDF-filer med C++. Specifikt har du lärt dig hur du lägger till, läser, ändrar och tar bort bokmärken i en PDF-fil. Dessutom har du sett hur du lägger till kapslade bokmärken med Aspose.PDF för C++ API. API:et tillhandahåller många ytterligare funktioner för att arbeta med PDF-filer som du kan utforska i detalj genom att använda den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på gratis supportforum.