Trabalhando com Ações em PDF

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

É possível adicionar hyperlinks a arquivos PDF, seja para permitir que os leitores naveguem para outra parte do PDF, ou para conteúdo externo.

Para adicionar hyperlinks da web a documentos PDF:

  1. Crie um objeto da classe Document.
  2. Obtenha a classe Page à qual você deseja adicionar o link.
  3. Crie um objeto LinkAnnotation usando os objetos Page e Rectangle. O objeto retângulo é usado para especificar a localização na página onde o link deve ser adicionado.
  4. Defina a propriedade Action para o objeto GoToURIAction que especifica a localização do URI remoto.
  5. Para exibir um texto de hyperlink, adicione uma string de texto em uma localização semelhante à onde o objeto LinkAnnotation está colocado.
  6. Para adicionar um texto livre:
  • Instancie um objeto FreeTextAnnotation. Ele também aceita objetos Page e Rectangle como argumento, então é possível fornecer os mesmos valores especificados contra o construtor LinkAnnotation.
  • Usando a propriedade Contents do objeto FreeTextAnnotation, especifique a string que deve ser exibida no PDF de saída.
  • Opcionalmente, defina a largura da borda de ambos os objetos LinkAnnotation e FreeTextAnnotation para 0, para que não apareçam no documento PDF.
  • Uma vez que os objetos LinkAnnotation e FreeTextAnnotation tenham sido definidos, adicione esses links à coleção Annotations do objeto Page.
  • Finalmente, salve o PDF atualizado usando o método Save do objeto Document.

O seguinte trecho de código mostra como adicionar um hyperlink a um arquivo PDF.

Aspose.PDF for .NET fornece um ótimo recurso para a criação de PDF, bem como sua manipulação. Ele também oferece a funcionalidade de adicionar links a páginas PDF e um link pode direcionar para páginas em outro arquivo PDF, uma URL da web, link para iniciar um aplicativo ou até mesmo link para páginas no mesmo arquivo PDF. Para adicionar hyperlinks locais (links para páginas no mesmo arquivo PDF), uma classe chamada LocalHyperlink foi adicionada ao namespace Aspose.PDF e essa classe possui uma propriedade chamada TargetPageNumber, que é usada para especificar a página de destino para o hyperlink.

Para adicionar o hyperlink local, precisamos criar um TextFragment para que o link possa ser associado ao TextFragment. A classe TextFragment possui uma propriedade chamada Hyperlink que é usada para associar a instância LocalHyperlink. O seguinte trecho de código mostra os passos para cumprir esse requisito.

Os links são representados como anotações em um arquivo PDF e podem ser adicionados, atualizados ou excluídos. Aspose.PDF for .NET também suporta a obtenção do destino (URL) do hyperlink em um arquivo PDF.

Para obter a URL de um link:

  1. Crie um objeto Document.
  2. Obtenha a Page da qual você deseja extrair links.
  3. Use a classe AnnotationSelector para extrair todos os objetos LinkAnnotation da página especificada.
  4. Passe o objeto AnnotationSelector para o método Accept do objeto Page.
  5. Obtenha todas as anotações de link selecionadas em um objeto IList usando a propriedade Selected do objeto AnnotationSelector.
  6. Finalmente, extraia a Ação do LinkAnnotation como GoToURIAction.

O seguinte trecho de código mostra como obter destinos de hyperlink (URL) de um arquivo PDF.

Um hyperlink tem duas partes: o texto que aparece no documento e a URL de destino. Em alguns casos, é o texto em vez da URL que precisamos.

Texto e anotações/ações em um arquivo PDF são representados por diferentes entidades. O texto em uma página é apenas um conjunto de palavras e caracteres, enquanto as anotações trazem alguma interatividade, como a inerente a um hyperlink.

Para encontrar o conteúdo da URL, você precisa trabalhar com tanto a anotação quanto o texto. O objeto Annotation não possui o texto em si, mas está localizado sob o texto na página. Portanto, para obter o texto, a Anotação fornece os limites da URL, enquanto o objeto Texto fornece o conteúdo da URL. Veja o seguinte trecho de código.

Remover Ação de Abertura de Documento de um Arquivo PDF

Como Especificar Página PDF ao Visualizar Documento explicou como informar a um documento para abrir em uma página diferente da primeira. Ao concatenar vários documentos, e um ou mais tiverem uma ação GoTo definida, você provavelmente desejará removê-las. Por exemplo, se combinar dois documentos e o segundo tiver uma ação GoTo que leva você à segunda página, o documento de saída será aberto na segunda página do segundo documento em vez da primeira página do documento combinado. Para evitar esse comportamento, remova o comando de ação de abertura.

Para remover uma ação de abertura:

  1. Defina a propriedade OpenAction do objeto Document como null.
  2. Salve o PDF atualizado usando o método Save do objeto Document.

O seguinte trecho de código mostra como remover uma ação de abertura de documento do arquivo PDF.

Como Especificar Página PDF ao Visualizar Documento

Ao visualizar arquivos PDF em um visualizador de PDF como o Adobe Reader, os arquivos geralmente abrem na primeira página. No entanto, é possível definir o arquivo para abrir em uma página diferente.

A classe XYZExplicitDestination permite que você especifique uma página em um arquivo PDF que deseja abrir. Ao passar o valor do objeto GoToAction para a propriedade OpenAction da classe Document, o documento é aberto na página especificada contra o objeto XYZExplicitDestination. O seguinte trecho de código mostra como especificar uma página como a ação de abertura do documento.