使用Java替换PowerPoint中的Text

时间:2018-05-25 12:33:13

标签: java powerpoint docx4j

我的PPT包含格式为{VALUES}的值。我想使用Java将包含{SAMPLE}的文件的文本替换为SARAN等等。之前我尝试使用Apache poi而我没有解决方案,但我发现在Docx4j中有一个方法variableReplace()将替换文本。我尝试了一个样本,但我没有看到任何文本被替换。

我的代码:

public static void main(String[] args) throws IOException, Docx4JException, Pptx4jException, JAXBException  
{
      String inputfilepath = "C:\\Work\\SampleTemplate.pptx"; 
      PresentationMLPackage pptPackage
          = PresentationMLPackage.load(new File(inputfilepath));
      ThemePart themeSlidePart = (ThemePart) 
          pptPackage.getParts().getParts().get(new PartName("/ppt/theme/theme1.xml"));
      Theme themeOfSlides = (Theme)themeSlidePart.getJaxbElement();                     
      SlidePart slide = pptPackage.getMainPresentationPart().getSlide(0);
      HashMap h = new HashMap<String, String>();
      h.put("SlideTitleName", "SARANYA");
      slide.variableReplace(h);
      String outputfilepath = "C:\\Work\\24Jan2018_CheckOut\\dhl\\PPT-TRAILS\\SampleTemplate.pptx";
      PresentationMLPackage pptPackagetoApply
          = PresentationMLPackage.load(new File(outputfilepath));
      ThemePart themeSlidePartToApply
          = (ThemePart) pptPackagetoApply.getParts().getParts()
              .get(new PartName("/ppt/theme/theme1.xml"));
      themeSlidePartToApply.setJaxbElement(themeOfSlides);
      SaveToZipFile saver = new SaveToZipFile(pptPackagetoApply);
      saver.save(outputfilepath);
}

但是文字仍未被替换。我尝试了一个只有文字&#34; $ {SlideTitleName}&#34;的新PPTX文件。在里面。但它还没有奏效。

我想使用for循环向我的pptx模板添加许多行,我尝试了下面的内容,

爪哇:

  if(majorAchievements.size()>0){

        System.out.println("majorAchievements Size in Servlet is : "+majorAchievements.size() + " and value of get(0) is : "+ majorAchievements.get(0) ); 

        for(int i=0;i<majorAchievements.size();i++){

            achievements=(String) majorAchievements.get(i);

        }
    }


mappings.put("MajorAchievementText", achievements);

在我的ppt文件中,

我添加了两行,使用相同的$ {MajorAchievementText}。

上面的列表提取了2行。但在ppt里面它不是替代品。 请帮我如何通过迭代替换文本。

关心, Saranya C

0 个答案:

没有答案