Crear enlaces PDF en Python
Enlaces en documentos PDF
Según la especificación PDF 1.7 (ISO 32000-1:2008), una Link annotation puede activar varios tipos de acciones que definen lo que ocurre cuando se activa la anotación. Aquí están las acciones principales admitidas:
- GoTo – Navega a un destino dentro del mismo documento.
- GoToR – Salta a un destino en otro archivo PDF (go-to remoto).
- URI – Abre un identificador uniforme de recursos, típicamente un enlace web.
- Launch – Lanza una aplicación o abre un archivo (dependiendo de la plataforma y a menudo restringido por motivos de seguridad).
- Named – Ejecuta una acción predefinida, como ir a la página siguiente o imprimir el documento.
- JavaScript – Ejecuta código JavaScript incrustado (se usa con precaución debido a preocupaciones de seguridad).
- SubmitForm – Envía los datos del formulario a una URL especificada.
- ResetForm – Restablece los campos del formulario a sus valores predeterminados.
- ImportData – Importa datos al documento desde un archivo externo.
Al agregar un enlace a una aplicación dentro de un documento, es posible enlazar a aplicaciones desde un documento. Esto es útil cuando deseas que los lectores realicen una acción determinada en un punto específico de un tutorial, por ejemplo, o para crear un documento con muchas funciones.
Para crear un enlace a una aplicación con ‘LaunchAction’:
import aspose.pdf as ap
from os import path
import sys
def create_link_annotation_launch_action(infile, outfile):
document = ap.Document(infile)
page = document.pages[1]
link = ap.annotations.LinkAnnotation(page, ap.Rectangle(10, 580, 120, 600, True))
border = ap.annotations.Border(link)
border.width = 5
border.dash = ap.annotations.Dash(1, 1)
link.color = ap.Color.green
link.action = ap.annotations.LaunchAction(document, "sample.pdf")
page.annotations.append(link)
document.save(outfile)
Crear enlace de documento PDF en un archivo PDF
Usando GoToRemoteAction
Este fragmento de código demuestra cómo agregar una anotación de enlace a una página específica de un documento PDF usando una biblioteca PDF de Python.
- Abre el documento PDF
- Selecciona la segunda página del documento (índice 1)
- Crea una anotación de enlace:
- Posicionado en las coordenadas (10, 580, 120, 600)
- Coloreado verde
- Enlaces a ‘sample.pdf’ en su primera página
- Agregar la anotación de enlace a la página
- Guardar el documento modificado en la ruta del archivo de salida
Para crear un enlace de documento PDF usando ‘GoToRemoteAction’:
import aspose.pdf as ap
from os import path
import sys
def create_link_annotation_go_to_remote_action(infile, outfile):
document = ap.Document(infile)
page = document.pages[1]
link = ap.annotations.LinkAnnotation(page, ap.Rectangle(10, 580, 120, 600, True))
link.color = ap.Color.green
link.action = ap.annotations.GoToRemoteAction("sample.pdf", 1)
page.annotations.append(link)
document.save(outfile)
Usando GoToAction
Este código muestra cómo agregar una anotación de enlace a una página específica de un documento PDF usando Aspose.PDF for Python. El enlace aparece como un rectángulo verde con borde discontinuo y permite al usuario navegar a otra página dentro del mismo PDF. Para crear un enlace de documento PDF usando ‘GoToAction’:
import aspose.pdf as ap
from os import path
import sys
def create_link_annotation_go_to_action(infile, outfile):
document = ap.Document(infile)
page = document.pages[1]
link = ap.annotations.LinkAnnotation(page, ap.Rectangle(10, 580, 120, 600, True))
border = ap.annotations.Border(link)
border.width = 5
border.dash = ap.annotations.Dash(1, 1)
link.color = ap.Color.green
if document.pages.length >= 4:
link.action = ap.annotations.GoToAction(document.pages[4])
else:
link.action = ap.annotations.GoToAction(document.pages[document.pages.length])
page.annotations.append(link)
document.save(outfile)
Aplicando GoToURIAction
El siguiente ejemplo muestra cómo agregar una anotación de enlace a un documento PDF usando Aspose.PDF for Python. El enlace aparece como un área verde clicable en la primera página, y al hacer clic, abre la documentación de Aspose.PDF for Python en un navegador web mediante una GoToURIAction.
Esta funcionalidad es útil para incrustar referencias externas útiles, documentación o enlaces de soporte directamente dentro de sus PDFs.
- Cargue el documento PDF. Abra el archivo PDF existente usando ap.Document.
- Acceda a la primera página. Use document.pages[1] para acceder a la primera página (Aspose usa indexación basada en 1).
- Cree una anotación de enlace. Cree un objeto LinkAnnotation y especifique el área rectangular clicable usando ap.Rectangle.
- Establecer apariencia de la anotación. Establecer el color de la anotación a verde usando link.color = ap.Color.green.
- Asignar una acción URI. Utilizar GoToURIAction para vincular la anotación a una URL externa.
- Agregar la anotación a la página. Añadir la anotación de enlace configurada a la colección de anotaciones de la primera página.
- Guardar el documento modificado. Guardar el documento PDF actualizado en la ruta de salida especificada.
import aspose.pdf as ap
from os import path
import sys
def create_link_annotation_go_to_URI_action(infile, outfile):
document = ap.Document(infile)
page = document.pages[1]
link = ap.annotations.LinkAnnotation(page, ap.Rectangle(10, 580, 120, 600, True))
link.color = ap.Color.green
link.action = ap.annotations.GoToURIAction("https://docs.aspose.com/pdf/python")
page.annotations.append(link)
document.save(outfile)