在某项目中,用Java的POI包用int index=slideShow.addPicture()方法向PPTX(2007)中插入图片,并用slide.createPicture(index)方法把图片添加到指定的位置。
发现在依次添加20张图片后,并添加到幻灯片指定的页时,图片顺序乱了。经测试发现:依次加入的图片返回的index分别为:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19。但图片真正的位置却是:0,10,11,12,13,14,15,16,17,18,19,1,,2,3,4,5,6,7,8,9
经到POI包(开源)内调试发现,图片的位置顺序规则是这样的:先插入10张图片,第11-20张图片的插入位置是原index为0-1(第一张和第二张图片之间),第21-30张图片的插入位置是原index为1-2之间。
算法可这样设计:
XMLSlideShow pptx= new XMLSlideShow(OPCPackage.open(new FileInputStream("E:\\empty.pptx"))); //ppt模板