Как открыть презентацию PowerPoint в новой вкладке в проекте ASP. NET MVC C# - PullRequest
0 голосов
/ 19 апреля 2020

Я работаю над приложением ASP. NET MVC, у которого есть точка питания, которую я хочу отобразить на новой вкладке.

Я использовал open xml, чтобы прочитать файлы, но я не знаю, как его открыть.

Мой код для чтения файлов:

    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();
        }
   }

Можете ли вы помочь мне с этим?

1 Ответ

0 голосов
/ 19 апреля 2020

Вы не можете открыть файл pptx в браузере. Вы должны поместить ваш файл .pptx в каталог на сервере. И свяжите это с кнопкой. Когда пользователь нажимает на кнопку. Он откроется.

...