Gestionar hipervínculos

Un hipervínculo es una referencia a un objeto o datos o un lugar en algo. Estos son hipervínculos comunes en presentaciones de PowerPoint:

  • Enlaces a sitios web dentro de textos, formas o medios
  • Enlaces a diapositivas

Aspose.Slides para Python a través de .NET te permite realizar muchas tareas que involucran hipervínculos en presentaciones.

Agregar hipervínculos URL

Agregar hipervínculos URL a textos

Este código en Python te muestra cómo agregar un hipervínculo de sitio web a un texto:

import aspose.slides as slides

with slides.Presentation() as presentation:
    shape1 = presentation.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 600, 50, False)
    shape1.add_text_frame("Aspose: API de formatos de archivo")
    shape1.text_frame.paragraphs[0].portions[0].portion_format.hyperlink_click = slides.Hyperlink("https://www.aspose.com/")
    shape1.text_frame.paragraphs[0].portions[0].portion_format.hyperlink_click.tooltip = "Más del 70% de las empresas Fortune 100 confían en las API de Aspose."
    shape1.text_frame.paragraphs[0].portions[0].portion_format.font_height = 32
    
    presentation.save("presentation-out.pptx", slides.export.SaveFormat.PPTX)

Agregar hipervínculos URL a formas o marcos

Este código de ejemplo en Python te muestra cómo agregar un hipervínculo de sitio web a una forma:

import aspose.slides as slides

with slides.Presentation() as pres:
    shape = pres.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 600, 50)
    
    shape.hyperlink_click = slides.Hyperlink("https://www.aspose.com/")
    shape.hyperlink_click.tooltip = "Más del 70% de las empresas Fortune 100 confían en las API de Aspose."

    pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)

Agregar hipervínculos URL a medios

Aspose.Slides te permite agregar hipervínculos a imágenes, archivos de audio y video.

Este código de ejemplo te muestra cómo agregar un hipervínculo a una imagen:

import aspose.slides as slides

with slides.Presentation() as pres:
    # Agrega imagen a la presentación
    with open("img.jpeg", "rb") as fs:
        data = fs.read()
        image = pres.images.add_image(data)
        
        # Crea un marco de imagen en la diapositiva 1 basado en la imagen añadida previamente
        pictureFrame = pres.slides[0].shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, image)

        pictureFrame.hyperlink_click = slides.Hyperlink("https://www.aspose.com/")
        pictureFrame.hyperlink_click.tooltip = "Más del 70% de las empresas Fortune 100 confían en las API de Aspose."

    pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)

Este código de ejemplo te muestra cómo agregar un hipervínculo a un archivo de audio:

import aspose.slides as slides

with slides.Presentation() as pres:
    with open("audio.mp3", "rb") as fs:
        data = fs.read()
        audio = pres.audios.add_audio(data)
        
        audioFrame = pres.slides[0].shapes.add_audio_frame_embedded(10, 10, 100, 100, audio)

        audioFrame.hyperlink_click = slides.Hyperlink("https://www.aspose.com/")
        audioFrame.hyperlink_click.tooltip = "Más del 70% de las empresas Fortune 100 confían en las API de Aspose."

    pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)

Este código de ejemplo te muestra cómo agregar un hipervínculo a un video:

import aspose.slides as slides

with slides.Presentation() as pres:
    with open("video.avi", "rb") as fs:
        data = fs.read()
        video = pres.videos.add_video(data)
        
        videoFrame = pres.slides[0].shapes.add_video_frame(10, 10, 100, 100, video)

        videoFrame.hyperlink_click = slides.Hyperlink("https://www.aspose.com/")
        videoFrame.hyperlink_click.tooltip = "Más del 70% de las empresas Fortune 100 confían en las API de Aspose."

    pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)

Usar hipervínculos para crear una tabla de contenido

Dado que los hipervínculos te permiten agregar referencias a objetos o lugares, puedes usarlos para crear una tabla de contenido.

Este código de ejemplo te muestra cómo crear una tabla de contenido con hipervínculos:

import aspose.slides as slides

with slides.Presentation() as presentation:
    first_slide = presentation.slides[0]
    second_slide = presentation.slides.add_empty_slide(first_slide.layout_slide)

    content_table = first_slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 40, 40, 300, 100)
    content_table.fill_format.fill_type = slides.FillType.NO_FILL
    content_table.line_format.fill_format.fill_type = slides.FillType.NO_FILL
    content_table.text_frame.paragraphs.clear()

    paragraph = slides.Paragraph()
    paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
    paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
    paragraph.text = "Título de la diapositiva 2 .......... "

    linkPortion = slides.Portion()
    linkPortion.text = "Página 2"
    linkPortion.portion_format.hyperlink_manager.set_internal_hyperlink_click(second_slide)

    paragraph.portions.add(linkPortion)
    content_table.text_frame.paragraphs.add(paragraph)

    presentation.save("link_to_slide.pptx", slides.export.SaveFormat.PPTX)

Formato de hipervínculos

Color

Con la propiedad color_source en la interfaz IHyperlink, puedes establecer el color para los hipervínculos y también obtener la información de color de los hipervínculos. Esta característica se introdujo por primera vez en PowerPoint 2019, por lo que los cambios que involucran la propiedad no se aplican a versiones más antiguas de PowerPoint.

Este código de ejemplo muestra una operación donde se agregaron hipervínculos con diferentes colores en la misma diapositiva:

import aspose.slides as slides

with slides.Presentation() as presentation:
    shape1 = presentation.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 600, 50, False)
    shape1.add_text_frame("Este es un ejemplo de hipervínculo coloreado.")
    shape1.text_frame.paragraphs[0].portions[0].portion_format.hyperlink_click = slides.Hyperlink("https://www.aspose.com/")
    shape1.text_frame.paragraphs[0].portions[0].portion_format.hyperlink_click.color_source = slides.HyperlinkColorSource.PORTION_FORMAT
    shape1.text_frame.paragraphs[0].portions[0].portion_format.fill_format.fill_type = slides.FillType.SOLID
    shape1.text_frame.paragraphs[0].portions[0].portion_format.fill_format.solid_fill_color.color = draw.Color.red

    shape2 = presentation.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 200, 450, 50, False)
    shape2.add_text_frame("Este es un ejemplo de hipervínculo habitual.")
    shape2.text_frame.paragraphs[0].portions[0].portion_format.hyperlink_click = slides.Hyperlink("https://www.aspose.com/")

    presentation.save("presentation-out-hyperlink.pptx", slides.export.SaveFormat.PPTX)

Eliminar hipervínculos en presentaciones

Eliminar hipervínculos de textos

Este código en Python te muestra cómo eliminar el hipervínculo de un texto en una diapositiva de presentación:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres:
    slide = pres.slides[0]
    for shape in slide.shapes:
        if type(shape) is slides.AutoShape:
            for paragraph in shape.text_frame.paragraphs:
                for portion in paragraph.portions:
                    portion.portion_format.hyperlink_manager.remove_hyperlink_click()
    pres.save("pres-removed-hyperlinks.pptx", slides.export.SaveFormat.PPTX)

Eliminar hipervínculos de formas o marcos

Este código en Python te muestra cómo eliminar el hipervínculo de una forma en una diapositiva de presentación:

import aspose.slides as slides

with slides.Presentation("demo.pptx") as pres:
   slide = pres.slides[0]
   for shape in slide.shapes:
       shape.hyperlink_manager.remove_hyperlink_click()
   pres.save("pres-removed-hyperlinks.pptx", slides.export.SaveFormat.PPTX)

Hipervínculo mutable

La clase Hyperlink es mutable. Con esta clase, puedes cambiar los valores de estas propiedades:

El fragmento de código te muestra cómo agregar un hipervínculo a una diapositiva y editar su tooltip más tarde:

import aspose.slides as slides

with slides.Presentation() as presentation:
    shape1 = presentation.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 600, 50, False)
    shape1.add_text_frame("Aspose: API de formatos de archivo")
    shape1.text_frame.paragraphs[0].portions[0].portion_format.hyperlink_click = slides.Hyperlink("https://www.aspose.com/")
    shape1.text_frame.paragraphs[0].portions[0].portion_format.hyperlink_click.tooltip = "Más del 70% de las empresas Fortune 100 confían en las API de Aspose."
    shape1.text_frame.paragraphs[0].portions[0].portion_format.font_height = 32

    presentation.save("presentation-out.pptx", slides.export.SaveFormat.PPTX)

Propiedades compatibles en IHyperlinkQueries

Puedes acceder a IHyperlinkQueries desde una presentación, diapositiva o texto para el cual se define el hipervínculo.

La clase IHyperlinkQueries admite estos métodos y propiedades: