小编Lez*_*Lez的帖子

使用 Apache POI 替换 powerpoint 中的所有文本

我查看了 apache POI 文档并创建了一个函数来编辑 powerpoint 中的所有文本。该函数可以很好地替换幻灯片中的文本,但不能替换分组文本框中的文本。是否有单独的对象来处理分组的项目?

private static void redactText(XMLSlideShow ppt) {
    for (XSLFSlide slide : ppt.getSlides()) {
        System.out.println("REDACT Slide: " + slide.getTitle());

        XSLFTextShape[] shapes = slide.getPlaceholders();

        for (XSLFTextShape textShape : shapes) {

            List<XSLFTextParagraph> textparagraphs = textShape.getTextParagraphs();

            for (XSLFTextParagraph para : textparagraphs) {

                List<XSLFTextRun> textruns = para.getTextRuns();

                for (XSLFTextRun incomingTextRun : textruns) {

                    String text = incomingTextRun.getRawText();

                    System.out.println(text);

                    if (text.toLowerCase().contains("test")) {

                        String newText = text.replaceAll("(?i)" + "test", "XXXXXXXX");

                        incomingTextRun.setText(newText);

                    }
                }
            }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java apache powerpoint apache-poi

3
推荐指数
1
解决办法
2560
查看次数

标签 统计

apache ×1

apache-poi ×1

java ×1

powerpoint ×1