如何在ASP.NET MVC C#项目的新选项卡中打开PowerPoint演示文稿

问题描述 投票:0回答:1

我正在使用ASP.NET MVC应用程序,该应用程序具有一些电源要在新选项卡上显示。

我使用过openxml来读取文件,但我不知道如何打开它。

我的文件读取代码:

    public ActionResult Index()
    {
        StringBuilder sb = new StringBuilder();
        string file = Server.MapPath("~/PPTFiles/Test.pptx");

        int numberOfSlides = CountSlides(file);

        string slideText;

        for (int i = 0; i < numberOfSlides; i++)
        {
            // Get slide text.
            GetSlideIdAndText(out slideText, file, i);
            sb.Append(slideText);
        }

        return View();
    }

    public static int CountSlides(string presentationFile)
    {
        using (PresentationDocument presentationDocument = PresentationDocument.Open(presentationFile, false))
        {
            return CountSlides(presentationDocument);
        }
    }

    public static int CountSlides(PresentationDocument presentationDocument)
    {
        if (presentationDocument == null)
        {
            throw new ArgumentNullException("presentationDocument");
        }

        int slidesCount = 0;

        PresentationPart presentationPart = presentationDocument.PresentationPart;

        if (presentationPart != null)
        {
            slidesCount = presentationPart.SlideParts.Count();
        }

        return slidesCount;
    }

    public static void GetSlideIdAndText(out string slideText, string docName, int index)
    {
        using (PresentationDocument ppt = PresentationDocument.Open(docName, false))
        {
            PresentationPart part = ppt.PresentationPart;
            OpenXmlElementList slideIds = part.Presentation.SlideIdList.ChildElements;
            string relId = (slideIds[index] as SlideId).RelationshipId;
            SlidePart slide = (SlidePart)part.GetPartById(relId);
            StringBuilder paragraphText = new StringBuilder();
            IEnumerable<A.Text> texts = slide.Slide.Descendants<A.Text>();

            foreach (A.Text text in texts)
            {
                paragraphText.Append(text.Text);
            }

            slideText = paragraphText.ToString();
        }
   }

您能帮我吗?

c# asp.net-mvc powerpoint openxml
1个回答
0
投票

您无法在浏览器中打开pptx文件。您应将.pptx文件放在服务器上的目录中。并将其链接到一个按钮。用户单击按钮时。它将打开。

© www.soinside.com 2019 - 2024. All rights reserved.