Hantera presentationshyperlänkar i .NET

Introduktion

En hyperlänk är en referens till ett objekt eller data eller en plats i något. Detta är vanliga hyperlänkar i PowerPoint-presentationer:

  • Länkar till webbplatser i texter, former eller media
  • Länkar till bilder

Aspose.Slides för .NET låter dig utföra många uppgifter som rör hyperlänkar i presentationer.

Lägg till URL‑hyperlänkar

Lägg till URL‑hyperlänkar till text

Den här C#‑koden visar hur du lägger till en webbplats‑hyperlänk i en text:

using (Presentation presentation = new Presentation())
{
	IAutoShape shape1 = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 600, 50, false);
	shape1.AddTextFrame("Aspose: File Format APIs");
	shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
	shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick.Tooltip = "More than 70% Fortune 100 companies trust Aspose APIs";
	shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.FontHeight = 32;

	presentation.Save("presentation-out.pptx", SaveFormat.Pptx);
}

Lägg till URL‑hyperlänkar till former eller ramar

Det här exempelprogrammet i C# visar hur du lägger till en webbplats‑hyperlänk till en form:

using (Presentation pres = new Presentation())
{
    IShape shape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 600, 50);
    
    shape.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    shape.HyperlinkClick.Tooltip = "More than 70% Fortune 100 companies trust Aspose APIs";

    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Lägg till URL‑hyperlänkar till media

Aspose.Slides låter dig lägga till hyperlänkar till bilder, ljud‑ och videofiler.

Det här exempelprogrammet visar hur du lägger till en hyperlänk till en bild:

using (Presentation pres = new Presentation())
{
    // Lägger till bild i presentationen
    IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
    // Skapar bildram på bild 1 baserat på tidigare tillagd bild
    IPictureFrame pictureFrame = pres.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);

    pictureFrame.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    pictureFrame.HyperlinkClick.Tooltip = "More than 70% Fortune 100 companies trust Aspose APIs";

    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Det här exempelprogrammet visar hur du lägger till en hyperlänk till en ljudfil:

using (Presentation pres = new Presentation())
{
    IAudio audio = pres.Audios.AddAudio(File.ReadAllBytes("audio.mp3"));
    IAudioFrame audioFrame = pres.Slides[0].Shapes.AddAudioFrameEmbedded(10, 10, 100, 100, audio);

    audioFrame.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    audioFrame.HyperlinkClick.Tooltip = "More than 70% Fortune 100 companies trust Aspose APIs";

    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Det här exempelprogrammet visar hur du lägger till en hyperlänk till en video:

using (Presentation pres = new Presentation())
{
    IVideo video = pres.Videos.AddVideo(File.ReadAllBytes("video.avi"));
    IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 100, 100, video);

    videoFrame.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    videoFrame.HyperlinkClick.Tooltip = "More than 70% Fortune 100 companies trust Aspose APIs";

    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Använd hyperlänkar för att skapa en innehållsförteckning

Eftersom hyperlänkar låter dig lägga till referenser till objekt eller platser kan du använda dem för att skapa en innehållsförteckning.

Det här exempelprogrammet visar hur du skapar en innehållsförteckning med hyperlänkar:

using (var presentation = new Presentation())
{
    var firstSlide = presentation.Slides[0];
    var secondSlide = presentation.Slides.AddEmptySlide(firstSlide.LayoutSlide);

    var contentTable = firstSlide.Shapes.AddAutoShape(ShapeType.Rectangle, 40, 40, 300, 100);
    contentTable.FillFormat.FillType = FillType.NoFill;
    contentTable.LineFormat.FillFormat.FillType = FillType.NoFill;
    contentTable.TextFrame.Paragraphs.Clear();

    var paragraph = new Paragraph();
    paragraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
    paragraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    paragraph.Text = "Title of slide 2 .......... ";

    var linkPortion = new Portion();
    linkPortion.Text = "Page 2";
    linkPortion.PortionFormat.HyperlinkManager.SetInternalHyperlinkClick(secondSlide);

    paragraph.Portions.Add(linkPortion);
    contentTable.TextFrame.Paragraphs.Add(paragraph);

    presentation.Save("link_to_slide.pptx", SaveFormat.Pptx);
}

Formatera hyperlänkar

Färg

Med egenskapen ColorSource i gränssnittet IHyperlink kan du ange färgen för hyperlänkar och även hämta färginformation från hyperlänkar. Funktionen introducerades först i PowerPoint 2019, så ändringar som rör egenskapen gäller inte äldre PowerPoint‑versioner.

Det här exempelprogrammet visar en operation där hyperlänkar med olika färger lades till på samma bild:

using (Presentation presentation = new Presentation())
{
    IAutoShape shape1 = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 450, 50, false);
    shape1.AddTextFrame("This is a sample of colored hyperlink.");
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick.ColorSource = HyperlinkColorSource.PortionFormat;
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.FillFormat.FillType = FillType.Solid;
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.FillFormat.SolidFillColor.Color = Color.Red;

    IAutoShape shape2 = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 200, 450, 50, false);
    shape2.AddTextFrame("This is a sample of usual hyperlink.");
    shape2.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick = new Hyperlink("https://www.aspose.com/");

    presentation.Save("presentation-out-hyperlink.pptx", SaveFormat.Pptx);
}

Ljud

Aspose.Slides tillhandahåller dessa egenskaper för att låta dig betona en hyperlänk med ljud:

Lägg till ett hyperlänksljud

Den här C#‑koden visar hur du ställer in hyperlänken som spelar ett ljud och stoppar det med en annan hyperlänk:

using (Presentation pres = new Presentation())
{
	// Lägger till ny ljudfil i presentationens ljudsamling
	IAudio playSound = pres.Audios.AddAudio(File.ReadAllBytes("sampleaudio.wav"));

	ISlide firstSlide = pres.Slides[0];

	// Lägger till ny form med hyperlänken till nästa bild
	IShape firstShape = firstSlide.Shapes.AddAutoShape(ShapeType.SoundButton, 100, 100, 100, 50);
	firstShape.HyperlinkClick = Hyperlink.NextSlide;

	// Kontrollerar hyperlänken för "Inget ljud"
	if (!firstShape.HyperlinkClick.StopSoundOnClick && firstShape.HyperlinkClick.Sound == null)
	{
		// Ställer in hyperlänken som spelar upp ljud
		firstShape.HyperlinkClick.Sound = playSound;
	}

	// Lägger till den tomma bilden 
	ISlide secondSlide = pres.Slides.AddEmptySlide(firstSlide.LayoutSlide);

	// Lägger till ny form med NoAction-hyperlänken
	IShape secondShape = secondSlide.Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 100, 50);
	secondShape.HyperlinkClick = Hyperlink.NoAction;

	// Ställer in hyperlänkens flagga "Stoppa tidigare ljud"
	secondShape.HyperlinkClick.StopSoundOnClick = true;

	pres.Save("hyperlink-sound.pptx", SaveFormat.Pptx);
}

Extrahera ett hyperlänksljud

Den här C#‑koden visar hur du extraherar ljudet som används i en hyperlänk:

using (Presentation pres = new Presentation("hyperlink-sound.pptx"))
{
	ISlide firstSlide = pres.Slides[0];

	// Hämtar den första formens hyperlänk
	IHyperlink link = firstSlide.Shapes[0].HyperlinkClick;

	if (link.Sound != null)
	{
		// Extraherar hyperlänkens ljud i en bytearray
		byte[] audioData = link.Sound.BinaryData;
	}
}

Ta bort hyperlänkar från presentationer

Ta bort hyperlänkar från text

Den här C#‑koden visar hur du tar bort hyperlänken från en text i en presentationsbild:

using (Presentation pres = new Presentation("pres.pptx"))
{
    ISlide slide = pres.Slides[0];
    foreach (IShape shape in slide.Shapes)
    {
        IAutoShape autoShape = shape as IAutoShape;
        if (autoShape != null)
        {
            foreach (IParagraph paragraph in autoShape.TextFrame.Paragraphs)
            {
                foreach (IPortion portion in paragraph.Portions)
                {
                    portion.PortionFormat.HyperlinkManager.RemoveHyperlinkClick();
                }
            }
        }
    }
    
    pres.Save("pres-removed-hyperlinks.pptx", SaveFormat.Pptx);
}

Ta bort hyperlänkar från former eller ramar

Den här C#‑koden visar hur du tar bort hyperlänken från en form i en presentationsbild:

using (Presentation pres = new Presentation("demo.pptx")) 
{ 
   ISlide slide = pres.Slides[0]; 
   foreach (IShape shape in slide.Shapes) 
     { 
       shape.HyperlinkManager.RemoveHyperlinkClick(); 
     } 
   pres.Save("pres-removed-hyperlinks.pptx", SaveFormat.Pptx); 
}

Muterbar hyperlänk

Klassen Hyperlink är muterbar. Med den här klassen kan du ändra värdena för dessa egenskaper:

Kodsnutten visar hur du lägger till en hyperlänk på en bild och redigerar dess verktygstips senare:

using (Presentation presentation = new Presentation())
{   
   IAutoShape shape1 = presentation.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 600, 50, false);    
    
   shape1.AddTextFrame("Aspose: File Format APIs");
    
   shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick = new Hyperlink("https://www.aspose.com/");
    
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.HyperlinkClick.Tooltip = "More than 70% Fortune 100 companies trust Aspose APIs";
    
    shape1.TextFrame.Paragraphs[0].Portions[0].PortionFormat.FontHeight = 32;
    
 presentation.Save("presentation-out.pptx", SaveFormat.Pptx);
}

Stödda egenskaper i IHyperlinkQueries

Du kan komma åt IHyperlinkQueries från en presentation, bild eller text där hyperlänken är definierad.

Klassen IHyperlinkQueries stöder dessa metoder och egenskaper:

FAQ

Hur kan jag skapa intern navigation inte bara till en bild, utan till ett “avsnitt” eller den första bilden i ett avsnitt?

Avsnitt i PowerPoint är grupperingar av bilder; navigationen riktar sig tekniskt sett till en specifik bild. För att “navigera till ett avsnitt” länkar du vanligtvis till dess första bild.

Kan jag fästa en hyperlänk till master‑bildens element så att den fungerar på alla bilder?

Ja. Master‑bildens och layout‑element stödjer hyperlänkar. Sådana länkar visas på underordnade bilder och är klickbara under bildspelet.

Kommer hyperlänkar att bevaras vid export till PDF, HTML, bilder eller video?

I PDF och HTML ja—länkar bevaras vanligtvis. Vid export till bilder och video kommer klickbarhet inte att överföras på grund av formatens natur (raster‑ramar/video stöder inte hyperlänkar).