Erstellen eines Präsentations-Viewers in C#
Übersicht
Aspose.Slides for .NET wird verwendet, um Präsentationsdateien mit Folien zu erstellen. Diese Folien können beispielsweise durch Öffnen der Präsentationen in Microsoft PowerPoint angezeigt werden. Entwickler müssen jedoch gelegentlich Folien als Bilder in ihrem bevorzugten Bildbetrachter anzeigen oder sie in einem benutzerdefinierten Präsentationsbetrachter verwenden. In solchen Fällen ermöglicht Aspose.Slides den Export einzelner Folien als Bilder. Dieser Artikel erklärt, wie das funktioniert.
Ein SVG‑Bild aus einer Folie erzeugen
- Erstellen Sie eine Instanz der Presentation-Klasse.
- Holen Sie eine Referenz auf die Folie über ihren Index.
- Öffnen Sie einen Dateistream.
- Speichern Sie die Folie als SVG‑Bild in den Dateistream.
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);
}
}
Ein SVG mit einer benutzerdefinierten Shape‑ID erzeugen
Aspose.Slides kann verwendet werden, um ein SVG aus einer Folie mit einer benutzerdefinierten Shape‑ID zu erzeugen. Dazu verwenden Sie die Id‑Eigenschaft des ISvgShape-Interfaces. Die Klasse CustomSvgShapeFormattingController kann verwendet werden, um die Shape‑ID festzulegen.
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++);
}
}
Ein Folien‑Miniaturbild erstellen
Aspose.Slides hilft Ihnen, Miniaturbilder von Folien zu erzeugen. Um mit Aspose.Slides eine Miniaturansicht einer Folie zu erstellen, befolgen Sie die folgenden Schritte:
- Erstellen Sie eine Instanz der Presentation-Klasse.
- Holen Sie eine Referenz auf die Folie über ihren Index.
- Erstellen Sie ein Miniaturbild der referenzierten Folie im gewünschten Maßstab.
- Speichern Sie das Miniaturbild in Ihrem bevorzugten 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);
}
}
Ein Folien‑Miniaturbild mit benutzerdefinierten Abmessungen erstellen
- Erstellen Sie eine Instanz der Presentation-Klasse.
- Holen Sie eine Referenz auf die Folie über ihren Index.
- Erzeugen Sie ein Miniaturbild der referenzierten Folie mit den angegebenen Abmessungen.
- Speichern Sie das Miniaturbild in Ihrem bevorzugten 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);
}
}
Ein Folien‑Miniaturbild mit Sprecher‑Notizen erstellen
- Erstellen Sie eine Instanz der RenderingOptions-Klasse.
- Verwenden Sie die Eigenschaft
RenderingOptions.SlidesLayoutOptions, um die Position der Sprecher‑Notizen festzulegen. - Erstellen Sie eine Instanz der Presentation-Klasse.
- Holen Sie eine Referenz auf die Folie über ihren Index.
- Erzeugen Sie ein Miniaturbild der referenzierten Folie unter Verwendung der Rendering‑Optionen.
- Speichern Sie das Miniaturbild in Ihrem bevorzugten 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‑Beispiel
Probieren Sie die kostenlose App Aspose.Slides Viewer aus, um zu sehen, was Sie mit der Aspose.Slides‑API implementieren können:
FAQ
Kann ich einen Präsentationsbetrachter in einer ASP.NET‑Webanwendung einbetten?
Ja. Sie können Aspose.Slides serverseitig verwenden, um Folien als Bilder oder HTML zu rendern und im Browser anzuzeigen. Navigations‑ und Zoom‑Funktionen können mit JavaScript für ein interaktives Erlebnis implementiert werden.
Was ist der beste Weg, Folien in einem benutzerdefinierten .NET‑Viewer anzuzeigen?
Der empfohlene Ansatz ist, jede Folie als Bild (z. B. PNG oder SVG) zu rendern oder sie mit Aspose.Slides in HTML zu konvertieren und die Ausgabe dann in einer Bildbox (für Desktop) oder einem HTML‑Container (für Web) darzustellen.
Wie gehe ich mit großen Präsentationen mit vielen Folien um?
Bei großen Decks sollten Sie Lazy‑Loading oder das Rendern von Folien bei Bedarf in Betracht ziehen. Das bedeutet, den Inhalt einer Folie nur zu erzeugen, wenn der Benutzer zu ihr navigiert, wodurch Speicher‑ und Ladezeit reduziert werden.
