Відображення PPT PPTX в ASP.NET Core

Вам потрібен засіб перегляду PowerPoint для перегляду або вставлення презентацій у веб-програму ASP.NET Core? Якщо так, продовжуйте читати цю статтю та дізнайтеся, як створити простий засіб перегляду ASP.NET Core PowerPoint і відображати презентації PPT/PPTX за допомогою C#. Тож почнемо.

Особливості ASP.NET PowerPoint Viewer

Наш ASP.NET PowerPoint Viewer використовуватиме API Aspose.Slides for .NET для відтворення слайдів презентації як зображень у форматі PNG. Після того, як слайди буде відображено, ми відобразимо їх за допомогою Bootstrap Carousel. У додатку будуть наступні функції:

  1. Переглядайте та переглядайте презентації PowerPoint (PPT/PPTX).
  2. Установіть файл PowerPoint за умовчанням, який буде відображатися під час завантаження сторінки.
  3. Повзунок для переходу між слайдами.

Кроки для створення PowerPoint Viewer в ASP.NET Core

Нижче наведено кілька простих кроків для створення PowerPoint Viewer в ASP.NET Core.

  1. Створіть нову веб-програму ASP.NET Core у Visual Studio.
Створіть ASP.NET PowerPoint Viewer
  1. Відкрийте диспетчер пакетів NuGet і встановіть пакет Aspose.Slides for .NET.
Слайд-шоу ASP.NET PowerPoint
  1. Створіть папки Презентації та Слайди в wwwroot, щоб зберігати файли PowerPoint і відтворені слайди відповідно.
Слайд-шоу PowerPoint в ASP.NET
  1. Створіть у кореневій папці нову папку з назвою «Помічники».

  2. Створіть у папці «Помічники» новий клас із назвою «Слайд» для зберігання інформації про слайди презентації.

public class Slide
{
	public int SlideNumber { get; set; }
	public string Path { get; set; }
}
  1. Відкрийте “HomeController.cs” і замініть його код таким (оновіть назву файлу PowerPoint за умовчанням у дії “Індекс”).
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)
		{
			// Відображати файл PowerPoint за умовчанням під час завантаження сторінки
			slides = RenderPresentationAsImage("presentation.pptx");
		}
		else
		{
			slides = RenderPresentationAsImage(fileName);
		}

		return View(slides);
	}
	public List<Helper.Slide> RenderPresentationAsImage(string FileName)
	{
		var webRoot = _env.WebRootPath;
		// Завантажте презентацію PowerPoint
		Presentation presentation = new Presentation(Path.Combine(webRoot, "Presentations", FileName));
		var slides = new List<Helper.Slide>();

		string imagePath = "";
		// Зберігайте та переглядайте слайди презентації
		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);
			// Додайте до списку
			slides.Add(new Helper.Slide { SlideNumber = j, Path = string.Format("slide_{0}.png", j) });
		}

		return slides;
	}
}
  1. Відкрийте Views/Home/index.cshtml і замініть його вміст наступним.
@{
    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. Створіть програму та запустіть її у своєму улюбленому браузері.
Переглядач PowerPoint в ASP.NET Core

Дивись також

Отримайте тимчасову ліцензію на Aspose.Slides for .NET

Ви можете отримати тимчасову ліцензію Aspose.Slides for .NET, щоб уникнути пробних обмежень.

Порада. Ви можете перевірити активну реалізацію операцій перегляду для презентацій.