Zeigen Sie PPT PPTX in ASP.NET Core an

Suchen Sie einen PowerPoint Viewer zum Anzeigen oder Einbetten von Präsentationen in Ihre ASP.NET Core Webanwendung? Wenn ja, lesen Sie diesen Artikel weiter und erfahren Sie, wie Sie einen einfachen ASP.NET Core PowerPoint Viewer erstellen und PPT/PPTX-Präsentationen mit C# anzeigen. Fangen wir also an.

Funktionen von ASP.NET PowerPoint Viewer

Unser ASP.NET PowerPoint Viewer verwendet die API Aspose.Slides for .NET, um die Präsentationsfolien als PNG Bilder zu rendern. Sobald die Folien gerendert sind, zeigen wir sie mit dem Bootstrap-Karussell an. Die folgenden Funktionen werden in der Anwendung enthalten sein:

  1. Durchsuchen und zeigen Sie PowerPoint Präsentationen (PPT/PPTX) an.
  2. Legen Sie die standardmäßige PowerPoint Datei fest, die beim Laden der Seite angezeigt werden soll.
  3. Schieberegler zum Navigieren zwischen den Folien.

Schritte zum Erstellen von PowerPoint Viewer in ASP.NET Core

Im Folgenden finden Sie einige einfache Schritte zum Erstellen eines PowerPoint-Viewers in ASP.NET Core.

  1. Erstellen Sie eine neue ASP.NET Core Webanwendung in Visual Studio.
Erstellen Sie ASP.NET PowerPoint Viewer
  1. Öffnen Sie den NuGet Package Manager und installieren Sie das Paket Aspose.Slides for .NET.
ASP.NET PowerPoint-Diashow
  1. Erstellen Sie Präsentations und Folienordner in wwwroot, um die PowerPoint Dateien bzw. die gerenderten Folien zu behalten.
PowerPoint-Diashow in ASP.NET
  1. Erstellen Sie im Stammordner einen neuen Ordner mit dem Namen „Helpers“.

  2. Erstellen Sie im Ordner „Helpers“ eine neue Klasse mit dem Namen „Slide“, um die Informationen der Präsentationsfolien zu speichern.

public class Slide
{
	public int SlideNumber { get; set; }
	public string Path { get; set; }
}
  1. Öffnen Sie „HomeController.cs“ und ersetzen Sie den Code durch den folgenden (Aktualisieren Sie den Namen der Standard-PowerPoint Datei in der Index-Aktion).
public class HomeController : Controller
{
	public List<Helper.Slide> slides;
	public IHostingEnvironment _env;
	public HomeController(IHostingEnvironment env)
	{
		_env = env;
	}
	[HttpGet]
	public ActionResult Index(string fileName)
	{
		slides = new List<Helper.Slide>();
		if (fileName == null)
		{
			// Standard-PowerPoint Datei beim Laden der Seite anzeigen
			slides = RenderPresentationAsImage("presentation.pptx");
		}
		else
		{
			slides = RenderPresentationAsImage(fileName);
		}

		return View(slides);
	}
	public List<Helper.Slide> RenderPresentationAsImage(string FileName)
	{
		var webRoot = _env.WebRootPath;
		// Laden Sie die PowerPoint Präsentation
		Presentation presentation = new Presentation(Path.Combine(webRoot, "Presentations", FileName));
		var slides = new List<Helper.Slide>();

		string imagePath = "";
		// Speichern und Anzeigen von Präsentationsfolien
		for (int j = 0; j < presentation.Slides.Count; j++)
		{
			ISlide sld = presentation.Slides[j];
			Bitmap bmp = sld.GetThumbnail(1f, 1f);
			imagePath = Path.Combine(webRoot, "Slides", string.Format("slide_{0}.png", j));
			bmp.Save(imagePath, System.Drawing.Imaging.ImageFormat.Png);
			// Zur Liste hinzufügen
			slides.Add(new Helper.Slide { SlideNumber = j, Path = string.Format("slide_{0}.png", j) });
		}

		return slides;
	}
}
  1. Öffnen Sie Views/Home/index.cshtml und ersetzen Sie den Inhalt durch den folgenden.
@{
    ViewData["Title"] = "PowerPoint Viewer";
}
@{
    Layout = null;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Slides Viewer</title>
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
    <link rel="stylesheet" href="~/css/site.css" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
    <div class="container">
        <nav class="navbar navbar-inverse navbar-fixed-top">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="sr-only">Toggle navigation</span>
                    </button>
                    <a asp-area="" asp-controller="Home" asp-action="Index" class="navbar-brand">PowerPoint Viewer</a>
                </div>
                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li style="cursor: pointer;"><a data-toggle="modal" data-target="#exampleModal">Browse</a></li>
                    </ul>
                </div>
            </div>
        </nav>
        <br />
        <div id="myCarousel" class="carousel slide" data-interval="false">
            <div class="carousel-inner" role="listbox" style="width:100%; height: auto !important;">
                @for (int i = 0; i < Model.Count; i++)
                {
                    if (i == 0)
                    {
                        <div class="item active">
                            <img src="~/Slides/@Model[i].Path" style="width: 80%; height: auto; margin:auto !important" class="img-responsive " />
                            <p style="text-align:center;">
                                <strong> @(Model[i].SlideNumber + 1)/@Model.Count</strong>
                            </p>
                        </div>
                    }
                    else
                    {
                        <div class="item">
                            <img src="~/Slides/@Model[i].Path" style="width: 80%; height: auto; margin:auto !important" class="img-responsive " />
                            <p style="text-align:center;">
                                <strong> @(Model[i].SlideNumber + 1)/@Model.Count</strong>
                            </p>
                        </div>
                    }
                }
            </div>
            <a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
                <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
                <span class="sr-only">Previous</span>
            </a>
            <a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
                <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
                <span class="sr-only">Next</span>
            </a>
        </div>

    </div>
    <!-- Modal -->
    <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">Select a file</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    <div class="list-group">
                        @foreach (string file in System.IO.Directory.EnumerateFiles("wwwroot/Presentations","*"))
                        {
                            string fileName = System.IO.Path.GetFileName(file);
                            @Html.ActionLink(fileName, "Index", "Home", new { fileName = fileName }, new { @class = "list-group-item" })
                        } 
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>

    <script src="~/lib/jquery/dist/jquery.js"></script>
    <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>

    <script src="~/js/site.min.js" asp-append-version="true"></script>
</body>
</html>
  1. Erstellen Sie die Anwendung und führen Sie sie in Ihrem bevorzugten Browser aus.
PowerPoint-Viewer in ASP.NET Core

Siehe auch

Holen Sie sich eine temporäre Lizenz für Aspose.Slides for .NET

Sie können die temporäre Lizenz von Aspose.Slides for .NET erwerben, um Testeinschränkungen zu vermeiden.

Tipp: Vielleicht möchten Sie sich eine Live-Implementierung von Anzeigevorgängen für Präsentationen ansehen.