PDF é um formato de documento rico em recursos que suporta uma variedade de elementos, incluindo anotações, mídia, formulários etc. O hiperlink é um elemento importante usado para navegar no PDF, de um PDF para outro, para um página da web, etc. Ao gerar os documentos PDF programaticamente, muitas vezes você pode precisar inserir hiperlinks. Assim, neste artigo, você aprenderá como adicionar e atualizar hiperlinks em arquivos PDF em C# .NET.
- API .NET para adicionar hiperlinks em PDF
- Adicionar hiperlink em um PDF
- Adicionar hiperlink a um PDF externo
- Inserir hiperlink para uma página específica
- Atualizar um hiperlink em PDF
API C# .NET para adicionar ou atualizar hiperlinks em PDF
Para manipular hiperlinks em arquivos PDF, usaremos Aspose.PDF for .NET. É uma API popular que permite criar, processar e converter arquivos PDF a partir de aplicativos .NET. Você pode baixar os binários da API ou instalá-la usando NuGet.
PM> Install-Package Aspose.PDF
Adicionar hiperlink em um PDF em C#
A seguir estão as etapas para adicionar um hiperlink a um arquivo PDF em C#.
- Crie um novo PDF ou carregue um existente usando a classe Document.
- Obtenha a referência da página onde você deseja adicionar o hiperlink da coleção Document.Pages.
- Crie um objeto da classe LinkAnnotation e defina suas propriedades.
- Inicialize a propriedade LinkAnnotation.Action para o objeto GoToURIAction que contém a URL.
- Adicionar link à coleção Page.Annotations.
- Salve o PDF usando o método Document.Save(String).
O exemplo de código a seguir mostra como adicionar um hiperlink em PDF em C#.
// Abrir documento
Document document = new Document("input.pdf");
// Obter referência da página
var page = document.Pages[1];
// Criar objeto de anotação de link
LinkAnnotation link = new LinkAnnotation(page, new Aspose.Pdf.Rectangle(100, 100, 300, 300));
// Criar objeto de borda para LinkAnnotation
Border border = new Border(link);
// Defina o valor da largura da borda como 0
border.Width = 0;
// Definir a borda para LinkAnnotation
link.Border = border;
// Especifique o tipo de link como URI remoto
link.Action = new GoToURIAction("www.aspose.com");
// Adicionar anotação de link à coleção de anotações da primeira página do arquivo PDF
page.Annotations.Add(link);
// Salvar documento atualizado
document.Save("output.pdf");
Adicionar hiperlink a um PDF externo em C#
Você também pode navegar para um arquivo PDF externo a partir de um PDF usando um hiperlink. As etapas a seguir demonstram como adicionar um hiperlink a um arquivo PDF externo em C#.
- Crie um novo PDF ou carregue um existente usando a classe Document.
- Obtenha a referência da página onde você deseja adicionar o hiperlink da coleção Document.Pages.
- Crie um objeto da classe LinkAnnotation e defina suas propriedades.
- Inicialize a propriedade LinkAnnotation.Action para o objeto GoToRemoteAction contendo o caminho para o PDF externo.
- Adicionar link para a coleção Page.Annotations.
- Salve o documento usando o método Document.Save(String).
O exemplo de código a seguir mostra como adicionar hiperlink a um PDF externo em C#.
// Abrir documento
Document document = new Document("input.pdf");
// Obter referência da página
var page = document.Pages[1];
// Criar hiperlink
LinkAnnotation link = new LinkAnnotation(page, new Aspose.Pdf.Rectangle(100, 100, 300, 300));
link.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// Definir ação
link.Action = new GoToRemoteAction("external.pdf", 1);
// Adicionar hiperlink à página
page.Annotations.Add(link);
// Salvar documento atualizado
document.Save("output.pdf");
Inserir hiperlink para uma página PDF específica
Em certos casos, você precisa navegar de uma página para outra em um documento PDF. A classe LocalHyperlink é usada para navegar até a página específica em um PDF. A seguir estão os passos para conseguir isso.
- Crie um novo PDF ou carregue um existente usando a classe Document.
- Obtenha a referência da página onde você deseja adicionar o hiperlink da coleção Document.Pages.
- Crie uma instância de TextFragment para definir o texto do hiperlink.
- Crie uma instância da classe LocalHyperlink e defina a propriedade LocalHyperlink.TargetPageNumber para o número de página desejado.
- Atribua o objeto LocalHyperlink à propriedade TextFragment.Hyperlink.
- Adicione texto à página usando o método Page.Paragraphs.Add(TextFragment).
- Salve o PDF usando o método Document.Save(String).
O exemplo de código a seguir mostra como adicionar hiperlink para navegar até uma página específica no PDF.
// Abrir documento
Document document = new Document("input.pdf");
// Obter referência da página
var page = document.Pages[1];
// Criar instância TextFragment
Aspose.Pdf.Text.TextFragment text = new Aspose.Pdf.Text.TextFragment("link page number test to page 7");
// Criar instância de hiperlink local
Aspose.Pdf.LocalHyperlink link = new Aspose.Pdf.LocalHyperlink();
// Definir página de destino para instância de link
link.TargetPageNumber = 7;
// Definir hiperlink TextFragment
text.Hyperlink = link;
// Adicionar texto à coleção de parágrafos da Página
page.Paragraphs.Add(text);
// Salvar documento atualizado
document.Save("output.pdf");
Atualizar um hiperlink em PDF usando C#
Você também pode recuperar um hiperlink em um arquivo PDF e atualizar suas propriedades. A seguir estão as etapas para realizar esta operação.
- Carregue o arquivo PDF usando a classe Document.
- Obtenha a referência da página onde o hiperlink está localizado da coleção Document.Pages.
- Extraia o objeto LinkAnnotation desejado da coleção Page.Annotations por índice.
- Atualize as propriedades necessárias e salve o PDF usando o método Document.Save(String).
O exemplo de código a seguir mostra como atualizar um hiperlink em PDF usando C#.
// Abrir documento
Document document = new Document("input.pdf");];
// Obter a primeira anotação de link da primeira página do documento
LinkAnnotation linkAnnot = (LinkAnnotation)document.Pages[1].Annotations[1];
// Altere a ação do link e defina o destino como endereço da web
linkAnnot.Action = new GoToURIAction("www.aspose.com");
// Altere outras propriedades conforme necessário
// Salvar documento atualizado
document.Save("output.pdf");
Obtenha uma licença gratuita
Você pode obter uma licença temporária gratuita para usar o Aspose.PDF para .NET sem limitações de avaliação.
Conclusão
Neste artigo, você aprendeu como adicionar diferentes tipos de hiperlinks em arquivos PDF usando C#. Além disso, você viu como recuperar os hiperlinks de arquivos PDF existentes e atualizar suas propriedades programaticamente. Além disso, você pode explorar mais sobre a API .NET PDF usando a documentação. Caso você tenha alguma dúvida ou pergunta, você pode entrar em contato conosco através do nosso fórum.