Marcadores em um arquivo PDF são úteis para marcar pontos de interesse no documento. Eles permitem que você salte rapidamente para um ponto específico no documento. Você pode se encontrar em situações em que precisa adicionar, ler, modificar ou excluir marcadores em um arquivo PDF programaticamente. Para isso, este artigo ensinará como trabalhar com marcadores em arquivos PDF usando C++.

API C++ para trabalhar com marcadores em arquivos PDF

Aspose.PDF for C++ é uma biblioteca C++ que permite criar, ler e atualizar documentos PDF. Além disso, a API suporta adicionar, ler, modificar e remover marcadores de arquivos PDF. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção downloads.

PM> Install-Package Aspose.PDF.Cpp

Adicionar marcadores em arquivos PDF usando C++

A seguir estão as etapas para adicionar um marcador em um arquivo PDF.

O código de exemplo a seguir demonstra como adicionar um marcador em um arquivo PDF usando C++.

// Crie uma instância da classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

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

// Crie o marcador
editor->CreateBookmarkOfPage(u"Bookmark for page 1", 1);

// Salve o documento PDF
editor->Save(u"OutputDirectory\\AddBookmark_out.pdf");
Saída gerada pelo código de amostra

Saída gerada pelo código de amostra

Adicionar marcadores aninhados em arquivos PDF

Você também pode adicionar marcadores aninhados usando a API Aspose.PDF para C++. A seguir estão as etapas para adicionar marcadores aninhados.

O código de exemplo a seguir mostra como adicionar marcadores aninhados em um arquivo PDF usando C++.

// Crie uma instância da classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

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

// Criar 1º marcador filho
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm1 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm1->set_PageNumber(1);
bm1->set_Title(u"First child");

// Criar 2º marcador filho
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm2 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm2->set_PageNumber(2);
bm2->set_Title(u"Second child");

// Criar marcador pai
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");

// Definir os favoritos filhos
System::SharedPtr<Aspose::Pdf::Facades::Bookmarks> bms = System::MakeObject<Aspose::Pdf::Facades::Bookmarks>();
bms->Add(bm1);
bms->Add(bm2);
bm->set_ChildItem(bms);

// Adicione os marcadores ao arquivo PDF
editor->CreateBookmarks(bm);

// Salve o documento PDF
editor->Save(u"OutputDirectory\\AddChildBookmark_out.pdf");
Saída gerada pelo código de amostra

Saída gerada pelo código de amostra

Ler marcadores de um arquivo PDF usando C++

Para ler os favoritos, use o método PdfBookmarkEditor->ExtractBookmarks(). A seguir estão as etapas para ler marcadores de um arquivo PDF.

O código de exemplo a seguir mostra como ler marcadores de um arquivo PDF usando C++.

// Crie uma instância da classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

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

// Recuperar todos os favoritos
System::SharedPtr <Bookmarks> bms = editor->ExtractBookmarks();

// Percorrer os marcadores
for (System::SharedPtr<Bookmark> bm : bms) {
	
	// Exibir o título do marcador
	Console::WriteLine(bm->get_Title());

	// Exibir o destino do marcador
	Console::WriteLine(bm->get_Destination());
}

Modificar o título do marcador usando C++

A seguir estão as etapas para modificar o título de um marcador existente em um arquivo PDF.

O código de exemplo a seguir demonstra como modificar o título de um marcador existente em um arquivo PDF.

// Crie uma instância da classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

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

// Modificar título do marcador
editor->ModifyBookmarks(u"bookmark for page 1", u"Page 1 Bookmark");

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

Excluir um marcador específico usando C++

A API fornece o método PdfBookmarkEditor->DeleteBookmarks(System::String title) para excluir um marcador específico de um arquivo PDF. A seguir estão as etapas para excluir um marcador específico.

O código de exemplo a seguir mostra como excluir um indicador específico usando C++.

// Crie uma instância da classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

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

// Excluir um marcador específico
editor->DeleteBookmarks(u"bookmark for page 1");

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

Excluir todos os marcadores em um arquivo PDF usando C++

Em vez de excluir os favoritos um de cada vez, você pode remover todos os favoritos de uma vez usando o método PdfBookmarkEditor->DeleteBookmarks(). A seguir estão as etapas para excluir todos os marcadores em um arquivo PDF.

Veja a seguir o código de exemplo para excluir todos os marcadores em um arquivo PDF.

// Crie uma instância da classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

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

// Excluir todos os favoritos
editor->DeleteBookmarks();

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

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como trabalhar com marcadores em arquivos PDF usando C++. Especificamente, você aprendeu como adicionar, ler, modificar e excluir marcadores em um arquivo PDF. Além disso, você viu como adicionar marcadores aninhados usando a API Aspose.PDF para C++. A API fornece muitos recursos adicionais para trabalhar com arquivos PDF que você pode explorar em detalhes usando a documentação oficial. Se você tiver alguma dúvida, não hesite em nos contatar no fórum de suporte gratuito.

Veja também