List of usage examples for org.apache.poi.xslf.usermodel XSLFPictureData getFileName
public String getFileName()
From source file:org.sleuthkit.autopsy.imageExtractor.ImageExtractor.java
private List<ExtractedImage> extractImagesFromPptx(AbstractFile af) { List<ExtractedImage> listOfExtractedImages = new ArrayList<ExtractedImage>(); String parentFileName = getUniqueName(af); XMLSlideShow pptx;//from w ww . j a va 2 s . c om try { pptx = new XMLSlideShow(new ReadContentInputStream(af)); } catch (IOException ex) { logger.log(Level.WARNING, "SlideShow container could not be instantiated while reading " + af.getName(), ex); return null; } List<XSLFPictureData> listOfAllPictures = pptx.getAllPictures(); // if no images are extracted from the ppt, return null, else initialize // the output folder for image extraction. String outputFolderPath; if (listOfAllPictures.isEmpty()) { return null; } else { outputFolderPath = getOutputFolderPath(parentFileName); } if (outputFolderPath == null) { logger.log(Level.WARNING, "Could not get path for image extraction from AbstractFile: {0}", af.getName()); return null; } for (XSLFPictureData xslsPicture : listOfAllPictures) { // get image file name, write it to the module outputFolder, and add // it to the listOfExtractedImages. String fileName = xslsPicture.getFileName(); FileOutputStream fos = null; try { fos = new FileOutputStream(outputFolderPath + File.separator + fileName); } catch (FileNotFoundException ex) { logger.log(Level.WARNING, "Invalid path provided for image extraction", ex); continue; } try { fos.write(xslsPicture.getData()); fos.close(); } catch (IOException ex) { logger.log(Level.WARNING, "Could not write to the provided location", ex); continue; } String fileRelativePath = File.separator + moduleDirRelative + File.separator + parentFileName + File.separator + fileName; long size = xslsPicture.getData().length; ExtractedImage extractedimage = new ExtractedImage(fileName, fileRelativePath, size, af); listOfExtractedImages.add(extractedimage); } return listOfExtractedImages; }
From source file:org.sleuthkit.autopsy.modules.embeddedfileextractor.ImageExtractor.java
License:Open Source License
/** * Extract images from pptx format files. * * @param af the file from which images are to be extracted. * * @return list of extracted images. Returns null in case no images were * extracted.//from www . j a v a 2 s. c om */ private List<ExtractedImage> extractImagesFromPptx(AbstractFile af) { List<ExtractedImage> listOfExtractedImages; XMLSlideShow pptx; try { pptx = new XMLSlideShow(new ReadContentInputStream(af)); } catch (Throwable ex) { // instantiating POI containers throw RuntimeExceptions logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.pptxContainer.init.err", af.getName()), ex); //NON-NLS return null; } List<XSLFPictureData> listOfAllPictures = null; try { listOfAllPictures = pptx.getAllPictures(); } catch (Exception ex) { // log internal Java and Apache errors as WARNING logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS return null; } // if no images are extracted from the PPT, return null, else initialize // the output folder for image extraction. String outputFolderPath; if (listOfAllPictures.isEmpty()) { return null; } else { outputFolderPath = getOutputFolderPath(this.parentFileName); } if (outputFolderPath == null) { logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.extractImageFrom.outputPath.exception.msg", af.getName())); //NON-NLS return null; } listOfExtractedImages = new ArrayList<>(); byte[] data = null; for (XSLFPictureData xslsPicture : listOfAllPictures) { // get image file name, write it to the module outputFolder, and add // it to the listOfExtractedImageAbstractFiles. String fileName = xslsPicture.getFileName(); try { data = xslsPicture.getData(); } catch (Exception ex) { // log internal Java and Apache errors as WARNING logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS return null; } writeExtractedImage(Paths.get(outputFolderPath, fileName).toString(), data); listOfExtractedImages.add( new ExtractedImage(fileName, getFileRelativePath(fileName), xslsPicture.getData().length, af)); } return listOfExtractedImages; }
From source file:poi.xslf.usermodel.DataExtraction.java
License:Apache License
public static void main(String args[]) throws Exception { if (args.length == 0) { System.out.println("Input file is required"); return;// w ww .j av a 2s .c o m } FileInputStream is = new FileInputStream(args[0]); XMLSlideShow ppt = new XMLSlideShow(is); is.close(); // Get the document's embedded files. List<PackagePart> embeds = ppt.getAllEmbedds(); for (PackagePart p : embeds) { String type = p.getContentType(); String name = p.getPartName().getName(); //typically file name InputStream pIs = p.getInputStream(); // make sense of the part data pIs.close(); } // Get the document's embedded files. List<XSLFPictureData> images = ppt.getAllPictures(); for (XSLFPictureData data : images) { PackagePart p = data.getPackagePart(); String type = p.getContentType(); String name = data.getFileName(); InputStream pIs = p.getInputStream(); // make sense of the image data pIs.close(); } Dimension pageSize = ppt.getPageSize(); // size of the canvas in points for (XSLFSlide slide : ppt.getSlides()) { for (XSLFShape shape : slide) { Rectangle2D anchor = shape.getAnchor(); // position on the canvas if (shape instanceof XSLFTextShape) { XSLFTextShape txShape = (XSLFTextShape) shape; System.out.println(txShape.getText()); } else if (shape instanceof XSLFPictureShape) { XSLFPictureShape pShape = (XSLFPictureShape) shape; XSLFPictureData pData = pShape.getPictureData(); System.out.println(pData.getFileName()); } else { System.out.println("Process me: " + shape.getClass()); } } } }