代码之家  ›  专栏  ›  技术社区  ›  Nhan Phan

用Aspose在MS-Powerpoint中查找给定单词

  •  0
  • Nhan Phan  · 技术社区  · 8 年前

    我试图检查MS Powerpoint是否包含给定单词,但它不起作用。

    这是我的班级,负责检查ppt文件:

    public class FindContentOfPpt
    {
        private static bool IsParagraphContain(IParagraph paragraph, string content)
        {
            return paragraph.Portions.Any(port => port.Text.Contains(content));
        }
    
        private static bool IsTextBoxContain(ITextFrame textBox, string content)
        {
            return textBox.Paragraphs.Any(para => IsParagraphContain(para, content));
        }
    
        private static bool IsSlideContain(ISlide slide, string content)
        {
            var allTextBoxes = SlideUtil.GetAllTextBoxes(slide);
            return allTextBoxes.Any(textBox => IsTextBoxContain(textBox, content));
        }
    
        public bool IsContain(string filePath, string content)
        {
            var pres = new Presentation(filePath);
    
            return pres.Slides.Any(slide => IsSlideContain(slide, content));
        }
    }
    

    var isContain = new FindContentOfPpt().IsContain("Find and Replace.pptx", "Presentation");
    

    尽管我的ppt文件包含一个文本框,其中包含内容:“This is Presentation”(这是演示文稿),但is contain始终为false。我已经调试过了,类可以打开ppt文件,但是textbox值不正确。

    4 回复  |  直到 8 年前
        1
  •  0
  •   user10125625 user10125625    8 年前

    可能是因为“由于评估版本限制而被截断。”。当您没有许可证时,它将限制为Aspose的几乎所有功能。您可以请求一个完整测试的试用版本。

        2
  •  1
  •   Mudassir    8 年前

    我已经观察了您共享的需求,而且代码示例看起来也不错。然而,为了进一步调查我们的问题,我请求您分享源演示文稿与期望的文本找到。请共享幻灯片索引,我可以在其中找到PowerPoint中所需的文本。你可能也有不同大小写的文本。请分享所要求的资料,以便我可以核实。

    我是Aspose的开发传道者。

        3
  •  0
  •   Nhan Phan    8 年前

    解决方案:我已请求试用许可证,并将其添加到我的项目中:

    Aspose.Slides.License license = new Aspose.Slides.License();
    license.SetLicense("my license file");
    
        4
  •  0
  •   Mudassir    8 年前

    @恩潘,