ss = new HSLFSlideShow(root); } catch (EncryptedPowerPointFileException e) { throw new EncryptedDocumentException(e); _slides = ss.getSlides(); ss.getNotesHeadersFooters() : null;
public static void main(String args[]) throws IOException { if (args.length < 1) { System.err.println("Usage:"); System.err.println("\tImageExtractor <file>"); return; } HSLFSlideShow ppt = new HSLFSlideShow(new HSLFSlideShowImpl(args[0])); //extract all pictures contained in the presentation int i = 0; for (HSLFPictureData pict : ppt.getPictureData()) { // picture data byte[] data = pict.getData(); PictureType type = pict.getType(); FileOutputStream out = new FileOutputStream("pict_" + i++ + type.extension); out.write(data); out.close(); } ppt.close(); } }
private void extractMacros(HSLFSlideShow ppt, XHTMLContentHandler xhtml) { //get macro persist id DocInfoListContainer list = (DocInfoListContainer)ppt.getDocumentRecord().findFirstOfType(RecordTypes.List.typeID); if (list == null) { return; } VBAInfoContainer vbaInfo = (VBAInfoContainer)list.findFirstOfType(RecordTypes.VBAInfo.typeID); if (vbaInfo == null) { return; } VBAInfoAtom vbaAtom = (VBAInfoAtom)vbaInfo.findFirstOfType(RecordTypes.VBAInfoAtom.typeID); if (vbaAtom == null) { return; } long persistId = vbaAtom.getPersistIdRef(); for (HSLFObjectData objData : ppt.getEmbeddedObjects()) { if (objData.getExOleObjStg().getPersistId() == persistId) { try (POIFSFileSystem poifsFileSystem = new POIFSFileSystem(objData.getInputStream())) { try { OfficeParser.extractMacros(poifsFileSystem, xhtml, EmbeddedDocumentUtil.getEmbeddedDocumentExtractor(context)); } catch (IOException|SAXException inner) { EmbeddedDocumentUtil.recordException(inner, parentMetadata); } } catch (IOException e) { EmbeddedDocumentUtil.recordEmbeddedStreamException(e, parentMetadata);//swallow } } } }
HSLFSlideShow slideShow = new HSLFSlideShow(new HSLFSlideShowImpl(dir)); for (int i = 0; i < 5; i++) { slideShow.removeSlide(0); } FileOutputStream out = new FileOutputStream("changed.ppt"); slideShow.write(out); out.close();
public static void main(String[] args) throws Exception { try (HSLFSlideShow ppt = new HSLFSlideShow()) { HSLFSlide slide = ppt.createSlide(); create1stTable(slide); create2ndTable(slide); try (FileOutputStream out = new FileOutputStream("hslf-table.ppt")) { ppt.write(out); } } }
/** * Creates a PowerPointExtractor, from a specific place * inside an open NPOIFSFileSystem * * @param dir the POIFS Directory containing the PowerPoint document */ public PowerPointExtractor(DirectoryNode dir) throws IOException { this(new HSLFSlideShow(dir)); }
public static PowerpointMetadata instance( InputStream stream ) throws IOException { POIFSFileSystem fs = new POIFSFileSystem(stream); HSLFSlideShow rawSlideShow = new HSLFSlideShow(fs); List<SlideMetadata> slidesMetadata = rawSlideShow.getSlides() .stream() .map(slide -> processSlide(rawSlideShow, slide)) .collect(Collectors.toList()); PowerpointMetadata deck = new PowerpointMetadata(); deck.setSlides(slidesMetadata); deck.setMetadata(new HSLFSlideShowImpl(fs).getSummaryInformation()); return deck; }
HSLFSlideShow ppt = new HSLFSlideShow(is); is.close(); Dimension pgsize = ppt.getPageSize(); int width = (int)(pgsize.width*scale); int height = (int)(pgsize.height*scale); for (HSLFSlide slide : ppt.getSlides()) { if (slidenum != -1 && slidenum != slide.getSlideNumber()) { continue; ppt.close();
public static void main(String[] args) throws IOException { try (HSLFSlideShow ppt = new HSLFSlideShow()) { HeadersFooters slideHeaders = ppt.getSlideHeadersFooters(); slideHeaders.setFootersText("Created by POI-HSLF"); slideHeaders.setSlideNumberVisible(true); slideHeaders.setDateTimeText("custom date time"); HeadersFooters notesHeaders = ppt.getNotesHeadersFooters(); notesHeaders.setFootersText("My notes footers"); notesHeaders.setHeaderText("My notes header"); ppt.createSlide(); try (FileOutputStream out = new FileOutputStream("headers_footers.ppt")) { ppt.write(out); } } }
HSLFSlideShow ppt = new HSLFSlideShow(is); is.close(); HSLFSoundData[] sound = ppt.getSoundData(); for (HSLFSoundData aSound : sound) { for (HSLFSlide slide : ppt.getSlides()) { ppt.close();
public static void main(String[] args) throws Exception { for (String arg : args) { FileInputStream is = new FileInputStream(arg); HSLFSlideShow ppt = new HSLFSlideShow(is); is.close(); for (HSLFSlide slide : ppt.getSlides()) { System.out.println("\nslide " + slide.getSlideNumber()); ppt.close();
public static void main(String[] args) throws IOException { try (FileInputStream fis = new FileInputStream(args[0])) { try (HSLFSlideShow ppt = new HSLFSlideShow(fis)) { HSLFSoundData[] sounds = ppt.getSoundData(); for (HSLFSlide slide : ppt.getSlides()) { for (HSLFShape shape : slide.getShapes()) { int soundRef = getSoundReference(shape); if (soundRef == -1) continue; System.out.println("Slide[" + slide.getSlideNumber() + "], shape[" + shape.getShapeId() + "], soundRef: " + soundRef); System.out.println(" " + sounds[soundRef].getSoundName()); System.out.println(" " + sounds[soundRef].getSoundType()); } } } } }
HSLFSlideShow ss = new HSLFSlideShow(hss); Record[] latestRecords = ss.getMostRecentCoreRecords(); ss.close();
} else if (contentType.equals("application/vnd.ms-powerpoint")) { HSLFSlideShow slideShow = new HSLFSlideShow(pPart.getInputStream()); slideShow.close(); } else if (contentType.equals("application/vnd.openxmlformats-officedocument.presentationml.presentation")) {
@Override public void write(OutputStream out) throws IOException { // check for text paragraph modifications for (HSLFSlide sl : getSlides()) { writeDirtyParagraphs(sl); } for (HSLFSlideMaster sl : getSlideMasters()) { boolean isDirty = false; for (List<HSLFTextParagraph> paras : sl.getTextParagraphs()) { for (HSLFTextParagraph p : paras) { isDirty |= p.isDirty(); } } if (isDirty) { for (TxMasterStyleAtom sa : sl.getTxMasterStyleAtoms()) { if (sa != null) { // not all master style atoms are set - index 3 is typically null sa.updateStyles(); } } } } _hslfSlideShow.write(out); }
/** * Add a font in this presentation * * @param fontInfo the font to add * @return the registered HSLFFontInfo - the font info object is unique based on the typeface */ public HSLFFontInfo addFont(FontInfo fontInfo) { return getDocumentRecord().getEnvironment().getFontCollection().addFont(fontInfo); }
private void handleSlideEmbeddedPictures(HSLFSlideShow slideshow, XHTMLContentHandler xhtml) throws TikaException, SAXException, IOException { for (HSLFPictureData pic : slideshow.getPictureData()) { String mediaType;
/** * <code>PictureData</code> object used in a texture, pattern of picture fill. */ @SuppressWarnings("resource") public HSLFPictureData getPictureData(){ AbstractEscherOptRecord opt = shape.getEscherOptRecord(); EscherSimpleProperty p = HSLFShape.getEscherProperty(opt, EscherProperties.FILL__PATTERNTEXTURE); if (p == null) { return null; } HSLFSlideShow ppt = shape.getSheet().getSlideShow(); List<HSLFPictureData> pict = ppt.getPictureData(); Document doc = ppt.getDocumentRecord(); EscherContainerRecord dggContainer = doc.getPPDrawingGroup().getDggContainer(); EscherContainerRecord bstore = HSLFShape.getEscherChild(dggContainer, EscherContainerRecord.BSTORE_CONTAINER); java.util.List<EscherRecord> lst = bstore.getChildRecords(); int idx = p.getPropertyValue(); if (idx == 0){ LOG.log(POILogger.WARN, "no reference to picture data found "); } else { EscherBSERecord bse = (EscherBSERecord)lst.get(idx - 1); for (HSLFPictureData pd : pict) { if (pd.getOffset() == bse.getOffset()){ return pd; } } } return null; }
private static SlideMetadata processSlide(HSLFSlideShow rawSlideShow, HSLFSlide slide) { SlideMetadata slideMetadata = new SlideMetadata(); // process title String title = slide.getTitle(); slideMetadata.setTitle(title); // process notes slideMetadata.setNotes(collectText(slide.getNotes().getTextParagraphs(), title)); // process text slideMetadata.setText(collectText(slide.getTextParagraphs(), title)); // process thumbnail Dimension pgsize = rawSlideShow.getPageSize(); BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB); Graphics2D graphics = img.createGraphics(); // clear the drawing area graphics.setPaint(Color.white); graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height)); // render slide.draw(graphics); try { ByteArrayOutputStream out = new ByteArrayOutputStream(); javax.imageio.ImageIO.write(img, "png", out); slideMetadata.setThumbnail(out.toByteArray()); } catch (IOException e) { throw new RuntimeException(e); } return slideMetadata; }
public HeadersFooters(HSLFSheet sheet, short headerFooterType) { _sheet = sheet; @SuppressWarnings("resource") HSLFSlideShow ppt = _sheet.getSlideShow(); Document doc = ppt.getDocumentRecord(); // detect if this ppt was saved in Office2007 String tag = ppt.getSlideMasters().get(0).getProgrammableTag(); _ppt2007 = _ppt2007tag.equals(tag); SheetContainer sc = _sheet.getSheetContainer(); HeadersFootersContainer hdd = (HeadersFootersContainer)sc.findFirstOfType(RecordTypes.HeadersFooters.typeID); // boolean ppt2007 = sc.findFirstOfType(RecordTypes.RoundTripContentMasterId.typeID) != null; if (hdd == null) { for (Record ch : doc.getChildRecords()) { if (ch instanceof HeadersFootersContainer && ((HeadersFootersContainer) ch).getOptions() == headerFooterType) { hdd = (HeadersFootersContainer) ch; break; } } } if (hdd == null) { hdd = new HeadersFootersContainer(headerFooterType); Record lst = doc.findFirstOfType(RecordTypes.List.typeID); doc.addChildAfter(hdd, lst); } _container = hdd; }