Here is what I did:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
public class MergeDemo {
public static void main(String[] args) throws Exception {
try (FileOutputStream out = new
FileOutputStream("output/MergeMultiplePresentations.pptx")) {
XMLSlideShow ppt = new XMLSlideShow();
String[] inputs = { "input/default_one.pptx",
"input/default_two.pptx",
"input/title_two_columns.pptx" };
for (String arg : inputs) {
FileInputStream is = new FileInputStream(arg);
XMLSlideShow src = new XMLSlideShow(is);
is.close();
for (XSLFSlide srcSlide : src.getSlides()) {
XSLFSlide newSlide = ppt.createSlide();
copySlideContent(srcSlide, newSlide);
newSlide.importContent(srcSlide);
}
src.close();
}
ppt.write(out);
ppt.close();
}
}
private static void copySlideContent(final XSLFSlide slideNeedToMerge,
final XSLFSlide newSlide) {
XSLFSlideLayout newSlideLayout = newSlide.getSlideLayout();
XSLFSlideMaster newSlideMaster = newSlide.getSlideMaster();
XSLFSlideLayout mergeSlideLayout =
slideNeedToMerge.getSlideLayout();
XSLFSlideMaster mergeSlideMaster =
slideNeedToMerge.getSlideMaster();
try {
// copy source layout to the new layout
newSlideLayout.importContent(mergeSlideLayout);
// copy source master to the new master
newSlideMaster.importContent(mergeSlideMaster);
} catch (Exception e) {
e.printStackTrace();
}
}
}
But I always got error:
java.lang.ClassCastException: org.apache.poi.ooxml.POIXMLDocumentPart cannot
be cast to org.apache.poi.xslf.usermodel.XSLFPictureData
at
org.apache.poi.xslf.usermodel.XSLFSheet.importBlip(XSLFSheet.java:651)
at
org.apache.poi.xslf.usermodel.XSLFPictureShape.copy(XSLFPictureShape.java:223)
at
org.apache.poi.xslf.usermodel.XSLFSheet.wipeAndReinitialize(XSLFSheet.java:452)
at
org.apache.poi.xslf.usermodel.XSLFSheet.importContent(XSLFSheet.java:431)
The slide is overlap with each others.
Any help?
--
Sent from: http://apache-poi.1045710.n5.nabble.com/POI-User-f2280730.html
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]