Wiki
Clone wikiAspose Java for Docx4j / Traverse-Presentation-Slides
Aspose.Slides
//Instantiate a Presentation object that represents a presentation file Presentation pres = new Presentation("data/pptx4j/presentation.pptx"); //Accessing slides for (ISlide slide : pres.getSlides()) { System.out.println(slide.getSlideNumber()); }
PPTX4j
try { getInputFilePath(args); } catch (IllegalArgumentException e) { inputfilepath = "data/pptx4j/pptx-basic.xml"; } PresentationMLPackage pMLPackage = (PresentationMLPackage) OpcPackage .load(new java.io.File(inputfilepath)); SlidePart slide = (SlidePart) pMLPackage.getParts().get( new PartName("/ppt/slides/slide1.xml")); new TraversalUtil(slide.getJaxbElement().getCSld().getSpTree() .getSpOrGrpSpOrGraphicFrame(), new Callback() { String indent = ""; // @Override public List<Object> apply(Object o) { String text = ""; try { System.out.println(indent + o.getClass().getName() + "\n\n" + XmlUtils.marshaltoString(o, true, org.pptx4j.jaxb.Context.jcPML)); } catch (RuntimeException me) { System.out.println(indent + o.getClass().getName()); } if (o instanceof org.pptx4j.pml.Shape) { CTTextBody txBody = ((org.pptx4j.pml.Shape) o).getTxBody(); if (txBody != null) { for (CTTextParagraph tp : txBody.getP()) { System.out.println(indent + tp.getClass().getName() + "\n\n" + XmlUtils .marshaltoString( tp, true, true, org.pptx4j.jaxb.Context.jcPML, "http://schemas.openxmlformats.org/presentationml/2006/main", "txBody", CTTextParagraph.class)); } } } return null; } // @Override public boolean shouldTraverse(Object o) { return true; } // Depth first // @Override public void walkJAXBElements(Object parent) { indent += " "; List children = getChildren(parent); if (children != null) { for (Object o : children) { // if its wrapped in javax.xml.bind.JAXBElement, get its // value o = XmlUtils.unwrap(o); this.apply(o); if (this.shouldTraverse(o)) { walkJAXBElements(o); } } } indent = indent.substring(0, indent.length() - 4); } // @Override public List<Object> getChildren(Object o) { return TraversalUtil.getChildrenImpl(o); } } );
Download Source Code
Updated