Actualizar Enlaces en PDF
El siguiente fragmento de código también funciona con la biblioteca Aspose.PDF.Drawing.
Actualizar enlaces en un archivo PDF
Como se discutió en Agregar un hipervínculo en un archivo PDF, la clase LinkAnnotation permite agregar enlaces en un archivo PDF. También existe una clase similar utilizada para obtener enlaces existentes dentro de archivos PDF. Utilice esto si necesita actualizar un enlace existente. Para actualizar un enlace existente:
- Cargue un archivo PDF.
- Vaya a una página específica en el archivo PDF.
- Especifique el destino del enlace usando la propiedad Destino del objeto GoToAction.
- La página de destino se especifica utilizando el constructor XYZExplicitDestination.
Establecer objetivo de enlace a una página en el mismo documento
El siguiente fragmento de código muestra cómo actualizar un enlace en un archivo PDF y establecer su objetivo en la segunda página del documento. El siguiente fragmento de código te muestra cómo actualizar un enlace en un archivo PDF y establecer su destino a la segunda página del documento.
// Para ejemplos completos y archivos de datos, por favor visita https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Cargar el archivo PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
// Obtener la primera anotación de enlace de la primera página del documento
LinkAnnotation linkAnnot = (LinkAnnotation)doc.Pages[1].Annotations[1];
// Modificación del enlace: cambiar el destino del enlace
GoToAction goToAction = (GoToAction)linkAnnot.Action;
// Especificar el destino para el objeto de enlace
// El primer parámetro es el objeto del documento, el segundo es el número de página de destino.
// El quinto argumento es el factor de zoom al mostrar la página respectiva. Al usar 2, la página se mostrará con un zoom del 200%
goToAction.Destination = new Aspose.Pdf.Annotations.XYZExplicitDestination(1, 1, 2, 2);
dataDir = dataDir + "PDFLINK_Modified_UpdateLinks_out.pdf";
// Guardar el documento con el enlace actualizado
doc.Save(dataDir);
Establecer el destino del enlace a una dirección web
Para actualizar el hipervínculo de modo que apunte a una dirección web, instancie el objeto GoToURIAction y páselo a la propiedad Action de LinkAnnotation. El siguiente fragmento de código muestra cómo actualizar un enlace en un archivo PDF y establecer su objetivo a una dirección web.
// Para ejemplos completos y archivos de datos, por favor vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Cargar el archivo PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
// Obtener la primera anotación de enlace de la primera página del documento
LinkAnnotation linkAnnot = (LinkAnnotation)doc.Pages[1].Annotations[1];
// Modificación del enlace: cambiar la acción del enlace y establecer el objetivo como dirección web
linkAnnot.Action = new GoToURIAction("www.aspose.com");
dataDir = dataDir + "SetDestinationLink_out.pdf";
// Guardar el documento con el enlace actualizado
doc.Save(dataDir);
Establecer el Destino del Enlace a Otro Archivo PDF
El siguiente fragmento de código muestra cómo actualizar un enlace en un archivo PDF y establecer su destino a otro archivo PDF.
// Para ejemplos completos y archivos de datos, por favor visite https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Cargar el archivo PDF
Document document = new Document(dataDir + "UpdateLinks.pdf");
LinkAnnotation linkAnnot = (LinkAnnotation)document.Pages[1].Annotations[1];
GoToRemoteAction goToR = (GoToRemoteAction)linkAnnot.Action;
// La siguiente línea actualiza el destino, no actualiza el archivo
goToR.Destination = new XYZExplicitDestination(2, 0, 0, 1.5);
// La siguiente línea actualiza el archivo
goToR.File = new FileSpecification(dataDir + "input.pdf");
dataDir = dataDir + "SetTargetLink_out.pdf";
// Guardar el documento con el enlace actualizado
document.Save(dataDir);
Actualizar el Color del Texto de LinkAnnotation
La anotación de enlace no contiene texto. La anotación de enlace no contiene texto.
// Para ejemplos completos y archivos de datos, por favor visite https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Cargar el archivo PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
foreach (Annotation annotation in doc.Pages[1].Annotations)
{
if (annotation is LinkAnnotation)
{
// Buscar el texto bajo la anotación
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]);
// Cambiar el color del texto.
foreach (TextFragment tf in ta.TextFragments)
{
tf.TextState.ForegroundColor = Color.Red;
}
}
}
dataDir = dataDir + "UpdateLinkTextColor_out.pdf";
// Guardar el documento con el enlace actualizado
doc.Save(dataDir);