Skapa en presentationsvisare i .NET

Introduktion

Aspose.Slides för .NET används för att skapa presentationsfiler med bilder. Dessa bilder kan visas genom att öppna presentationerna i Microsoft PowerPoint, till exempel. Ibland kan utvecklare behöva visa bilder som bilder i sin föredragna bildvisare eller använda dem i en anpassad presentationsvisare. I sådana fall låter Aspose.Slides dig exportera enskilda bilder som bildfiler. Denna artikel förklarar hur du gör det.

Generera en SVG-bild från en bild

För att generera en SVG-bild från en presentationsbild med Aspose.Slides, följ stegen nedan:

  1. Skapa en instans av klassen Presentation.
  2. Hämta en referens till bilden med dess index.
  3. Öppna en filström.
  4. Spara bilden som en SVG-bild till filströmmen.
int slideIndex = 0;

using (Presentation presentation = new Presentation("sample.pptx"))
{
    ISlide slide = presentation.Slides[slideIndex];

    using (FileStream svgStream = File.Create("output.svg"))
    {
        slide.WriteAsSvg(svgStream);
    }
}

Generera en SVG med ett anpassat form-ID

Aspose.Slides kan användas för att generera en SVG från en bild med ett anpassat form-ID. För att uppnå detta, använd Id‑egenskapen från gränssnittet ISvgShape. Klassen CustomSvgShapeFormattingController kan användas för att ange formens ID.

int slideIndex = 0;

using (Presentation presentation = new Presentation("sample.odp"))
{
    ISlide slide = presentation.Slides[slideIndex];
    
    SVGOptions svgOptions = new SVGOptions
    {
        ShapeFormattingController = new CustomSvgShapeFormattingController()
    };

    using (FileStream svgStream = File.Create("output.svg"))
    {
        slide.WriteAsSvg(svgStream, svgOptions);
    }
}
class CustomSvgShapeFormattingController : ISvgShapeFormattingController
{
    private int m_shapeIndex;

    public CustomSvgShapeFormattingController(int shapeStartIndex = 0)
    {
        m_shapeIndex = shapeStartIndex;
    }

    public void FormatShape(ISvgShape svgShape, IShape shape)
    {
        svgShape.Id = string.Format("shape-{0}", m_shapeIndex++);
    }
}

Skapa en miniatyrbild av en bild

Aspose.Slides hjälper dig att generera miniatyrbilder av bilder. För att generera en miniatyr av en bild med Aspose.Slides, följ stegen nedan:

  1. Skapa en instans av klassen Presentation.
  2. Hämta en referens till bilden med dess index.
  3. Skapa en miniatyrbild av den refererade bilden i önskad skala.
  4. Spara miniatyrbilden i ditt föredragna bildformat.
int slideIndex = 0;
float scaleX = 1;
float scaleY = scaleX;

using (Presentation presentation = new Presentation("sample.pptx"))
{
    ISlide slide = presentation.Slides[slideIndex];

    using (IImage image = slide.GetImage(scaleX, scaleY))
    {
        image.Save("output.jpg", ImageFormat.Jpeg);
    }
}

Skapa en miniatyrbild med användardefinierade dimensioner

För att skapa en miniatyrbild med användardefinierade dimensioner, följ stegen nedan:

  1. Skapa en instans av klassen Presentation.
  2. Hämta en referens till bilden med dess index.
  3. Generera en miniatyrbild av den refererade bilden med de angivna dimensionerna.
  4. Spara miniatyrbilden i ditt föredragna bildformat.
int slideIndex = 0;
Size slideSize = new Size(1200, 800);

using (Presentation presentation = new Presentation("sample.odp"))
{
    ISlide slide = presentation.Slides[slideIndex];

    using (IImage image = slide.GetImage(slideSize))
    {
        image.Save("output.jpg", ImageFormat.Jpeg);
    }
}

Skapa en miniatyrbild med talarnoter

För att generera en miniatyr av en bild med talarnoter med Aspose.Slides, följ stegen nedan:

  1. Skapa en instans av klassen RenderingOptions.
  2. Använd egenskapen RenderingOptions.SlidesLayoutOptions för att ställa in positionen för talarnoterna.
  3. Skapa en instans av klassen Presentation.
  4. Hämta en referens till bilden med dess index.
  5. Generera en miniatyrbild av den refererade bilden med hjälp av renderingsalternativen.
  6. Spara miniatyrbilden i ditt föredragna bildformat.
int slideIndex = 0;

RenderingOptions renderingOptions = new RenderingOptions
{
    SlidesLayoutOptions = new NotesCommentsLayoutingOptions
    {
        NotesPosition = NotesPositions.BottomTruncated
    }
};

using (Presentation presentation = new Presentation("sample.pptx"))
{
    ISlide slide = presentation.Slides[slideIndex];

    using (IImage image = slide.GetImage(renderingOptions))
    {
        image.Save("output.png", ImageFormat.Png);
    }
}

Live-exempel

Prova den kostnadsfria appen Aspose.Slides Viewer för att se vad du kan implementera med Aspose.Slides API:

Online PowerPoint-visare

FAQ

Kan jag bädda in en presentationsvisare i en ASP.NET-webbapplikation?

Ja. Du kan använda Aspose.Slides på serversidan för att rendera bilder som bilder eller HTML och visa dem i webbläsaren. Navigations- och zoomfunktioner kan implementeras med JavaScript för en interaktiv upplevelse.

Vad är det bästa sättet att visa bilder i en anpassad .NET‑visare?

Den rekommenderade metoden är att rendera varje bild som en bild (t.ex. PNG eller SVG) eller konvertera den till HTML med Aspose.Slides, och sedan visa resultatet i en bildruta (för skrivbord) eller HTML‑behållare (för webb).

Hur hanterar jag stora presentationer med många bilder?

För stora upplägg, överväg lazy‑loading eller rendera bilder på begäran. Det innebär att generera en bilds innehåll endast när användaren navigerar till den, vilket minskar minnes‑ och laddningstid.