Atualizar Links em PDF

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

Conforme discutido em Adicionar Hiperlink em um Arquivo PDF, a classe LinkAnnotation possibilita a adição de links em um arquivo PDF. Há também uma classe similar usada para obter links existentes dentro de arquivos PDF. Use isso se você precisar atualizar um link existente. Para atualizar um link existente:

  1. Carregue um arquivo PDF.
  2. Vá para uma página específica no arquivo PDF.
  3. Especifique o destino do link usando a propriedade Destination do objeto GoToAction.
  4. A página de destino é especificada usando o construtor XYZExplicitDestination.

O seguinte trecho de código mostra como atualizar um link em um arquivo PDF e definir seu alvo para a segunda página do documento. O seguinte trecho de código mostra como atualizar um link em um arquivo PDF e definir seu destino para a segunda página do documento.

// Para exemplos completos e arquivos de dados, por favor, visite https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Carregar o arquivo PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
// Obter a primeira anotação de link da primeira página do documento
LinkAnnotation linkAnnot = (LinkAnnotation)doc.Pages[1].Annotations[1];
// Modificação do link: alterar destino do link
GoToAction goToAction = (GoToAction)linkAnnot.Action;
// Especificar o destino para o objeto de link
// O primeiro parâmetro é o objeto do documento, o segundo é o número da página de destino.
// O 5º argumento é o fator de zoom ao exibir a página respectiva. Ao usar 2, a página será exibida com zoom de 200%
goToAction.Destination = new Aspose.Pdf.Annotations.XYZExplicitDestination(1, 1, 2, 2);
dataDir = dataDir + "PDFLINK_Modified_UpdateLinks_out.pdf";
// Salvar o documento com o link atualizado
doc.Save(dataDir);

Para atualizar o hiperlink de modo que aponte para um endereço web, instancie o objeto GoToURIAction e passe-o para a propriedade Action da LinkAnnotation. O seguinte trecho de código mostra como atualizar um link em um arquivo PDF e definir seu alvo para um endereço web.

// Para exemplos completos e arquivos de dados, por favor, vá para https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Carregar o arquivo PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");

// Obter a primeira anotação de link da primeira página do documento
LinkAnnotation linkAnnot = (LinkAnnotation)doc.Pages[1].Annotations[1];
// Modificação do link: alterar a ação do link e definir o alvo como endereço web
linkAnnot.Action = new GoToURIAction("www.aspose.com");

dataDir = dataDir + "SetDestinationLink_out.pdf";
// Salvar o documento com o link atualizado
doc.Save(dataDir);

O seguinte trecho de código mostra como atualizar um link em um arquivo PDF e definir seu destino para outro arquivo PDF.

// Para exemplos completos e arquivos de dados, por favor visite https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Carregar o arquivo PDF
Document document = new Document(dataDir + "UpdateLinks.pdf");

LinkAnnotation linkAnnot = (LinkAnnotation)document.Pages[1].Annotations[1];

GoToRemoteAction goToR = (GoToRemoteAction)linkAnnot.Action;
// Próxima linha atualiza destino, não atualizar arquivo
goToR.Destination = new XYZExplicitDestination(2, 0, 0, 1.5);
// Próxima linha atualiza arquivo
goToR.File = new FileSpecification(dataDir +  "input.pdf");

dataDir = dataDir + "SetTargetLink_out.pdf";
// Salvar o documento com link atualizado
document.Save(dataDir);

Atualizar Cor do Texto de LinkAnnotation

A anotação de link não contém texto. A anotação de link não contém texto.

// Para exemplos completos e arquivos de dados, por favor acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Carregar o arquivo PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
foreach (Annotation annotation in doc.Pages[1].Annotations)
{
    if (annotation is LinkAnnotation)
    {
        // Procurar o texto sob a anotação
        TextFragmentAbsorber ta = new TextFragmentAbsorber();
        Rectangle rect = annotation.Rect;
        rect.LLX -= 10;
        rect.LLY -= 10;
        rect.URX += 10;
        rect.URY += 10;
        ta.TextSearchOptions = new TextSearchOptions(rect);
        ta.Visit(doc.Pages[1]);
        // Mudar a cor do texto.
        foreach (TextFragment tf in ta.TextFragments)
        {
            tf.TextState.ForegroundColor = Color.Red;
        }
    }

}
dataDir = dataDir + "UpdateLinkTextColor_out.pdf";
// Salvar o documento com o link atualizado
doc.Save(dataDir);