Trabajando con Acciones en PDF

El siguiente fragmento de código también trabaja con la biblioteca Aspose.PDF.Drawing.

Agregar Hipervínculo en un Archivo PDF

Es posible agregar hipervínculos a archivos PDF, ya sea para permitir que los lectores naveguen a otra parte del PDF o a contenido externo.

Para agregar hipervínculos web a documentos PDF:

  1. Cree un objeto de la clase Document.
  2. Obtenga la clase Page a la que desea agregar el enlace.
  3. Cree un objeto LinkAnnotation utilizando los objetos Page y Rectangle. El objeto rectángulo se utiliza para especificar la ubicación en la página donde se debe agregar el enlace.
  4. Establezca la propiedad Action en el objeto GoToURIAction que especifica la ubicación de la URI remota.
  5. Para mostrar un texto de hipervínculo, agregue una cadena de texto en una ubicación similar a donde se coloca el objeto LinkAnnotation.
  6. Para agregar un texto libre:
  • Instancie un objeto FreeTextAnnotation. También acepta objetos Page y Rectangle como argumento, por lo que es posible proporcionar los mismos valores que se especifican en el constructor de LinkAnnotation.
  • Usando la propiedad Contents del objeto FreeTextAnnotation, especifique la cadena que debe mostrarse en el PDF de salida.
  • Opcionalmente, establezca el ancho del borde de los objetos LinkAnnotation y FreeTextAnnotation en 0 para que no aparezcan en el documento PDF.
  • Una vez que se han definido los objetos LinkAnnotation y FreeTextAnnotation, agregue estos enlaces a la colección Annotations del objeto Page.
  • Finalmente, guarde el PDF actualizado utilizando el método Save del objeto Document.

El siguiente fragmento de código muestra cómo agregar un hipervínculo a un archivo PDF.

Crear Hipervínculo a páginas en el mismo PDF

Aspose.PDF for .NET proporciona una gran característica para la creación de PDF así como su manipulación. También ofrece la función de agregar enlaces a páginas PDF y un enlace puede dirigir a páginas en otro archivo PDF, a una URL web, a lanzar una aplicación o incluso a páginas en el mismo archivo PDF. Para agregar hipervínculos locales (enlaces a páginas en el mismo archivo PDF), se ha agregado una clase llamada LocalHyperlink al espacio de nombres Aspose.PDF y esta clase tiene una propiedad llamada TargetPageNumber, que se utiliza para especificar la página de destino para el hipervínculo.

Para agregar el hipervínculo local, necesitamos crear un TextFragment para que el enlace pueda asociarse con el TextFragment. La clase TextFragment tiene una propiedad llamada Hyperlink que se utiliza para asociar la instancia de LocalHyperlink. El siguiente fragmento de código muestra los pasos para lograr este requisito.

Obtener Destino de Hipervínculo PDF (URL)

Los enlaces se representan como anotaciones en un archivo PDF y pueden ser agregados, actualizados o eliminados. Aspose.PDF for .NET también admite obtener el destino (URL) del hipervínculo en el archivo PDF.

Para obtener la URL de un enlace:

  1. Cree un objeto Document.
  2. Obtenga la Page de la que desea extraer enlaces.
  3. Use la clase AnnotationSelector para extraer todos los objetos LinkAnnotation de la página especificada.
  4. Pase el objeto AnnotationSelector al método Accept del objeto Page.
  5. Obtenga todas las anotaciones de enlace seleccionadas en un objeto IList utilizando la propiedad Selected del objeto AnnotationSelector.
  6. Finalmente, extraiga la acción de LinkAnnotation como GoToURIAction.

El siguiente fragmento de código muestra cómo obtener destinos de hipervínculo (URL) de un archivo PDF.

Obtener Texto de Hipervínculo

Un hipervínculo tiene dos partes: el texto que se muestra en el documento y la URL de destino. En algunos casos, es el texto en lugar de la URL lo que necesitamos.

El texto y las anotaciones/acciones en un archivo PDF están representados por diferentes entidades. El texto en una página es solo un conjunto de palabras y caracteres, mientras que las anotaciones aportan cierta interactividad, como la inherente en un hipervínculo.

Para encontrar el contenido de la URL, necesita trabajar tanto con la anotación como con el texto. El objeto Annotation no tiene el texto en sí, sino que se sitúa debajo del texto en la página. Así que para obtener el texto, la Anotación proporciona los límites de la URL, mientras que el objeto Texto proporciona el contenido de la URL. Por favor, vea el siguiente fragmento de código.

Eliminar Acción de Apertura de Documento de un Archivo PDF

Cómo Especificar Página PDF al Ver Documento explicó cómo indicar a un documento que se abra en una página diferente a la primera. Al concatenar varios documentos, y uno o más tiene una acción GoTo establecida, probablemente querrá eliminarlas. Por ejemplo, si combina dos documentos y el segundo tiene una acción GoTo que lo lleva a la segunda página, el documento de salida se abrirá en la segunda página del segundo documento en lugar de la primera página del documento combinado. Para evitar este comportamiento, elimine el comando de acción de apertura.

Para eliminar una acción de apertura:

  1. Establezca la propiedad OpenAction del objeto Document en null.
  2. Guarde el PDF actualizado utilizando el método Save del objeto Document.

El siguiente fragmento de código muestra cómo eliminar una acción de apertura de documento del archivo PDF.

Cómo Especificar Página PDF al Ver Documento

Al ver archivos PDF en un visor de PDF como Adobe Reader, los archivos generalmente se abren en la primera página. Sin embargo, es posible establecer el archivo para que se abra en una página diferente.

La clase XYZExplicitDestination le permite especificar una página en un archivo PDF que desea abrir. Al pasar el valor del objeto GoToAction a la propiedad OpenAction de la clase Document, el documento se abre en la página especificada contra el objeto XYZExplicitDestination. El siguiente fragmento de código muestra cómo especificar una página como la acción de apertura del documento.