List of usage examples for org.apache.pdfbox.pdmodel.graphics.image PDImageXObject createInputStream
@Override public InputStream createInputStream(List<String> stopFilters) throws IOException
From source file:org.apache.tika.parser.pdf.PDF2XHTMLPureJava.java
License:Apache License
private void writeToBuffer(PDImageXObject pdImage, String suffix, OutputStream out) throws IOException { BufferedImage image = pdImage.getImage(); if (image != null) { if ("jpg".equals(suffix)) { String colorSpaceName = pdImage.getColorSpace().getName(); //TODO: figure out if we want directJPEG as a configuration //previously: if (directJPeg || PDDeviceGray.... if (PDDeviceGray.INSTANCE.getName().equals(colorSpaceName) || PDDeviceRGB.INSTANCE.getName().equals(colorSpaceName)) { // RGB or Gray colorspace: get and write the unmodifiedJPEG stream InputStream data = pdImage.getStream().createInputStream(JPEG); org.apache.pdfbox.io.IOUtils.copy(data, out); org.apache.pdfbox.io.IOUtils.closeQuietly(data); } else { // for CMYK and other "unusual" colorspaces, the JPEG will be converted //ImageIOUtil.writeImage(image, suffix, out); }// w w w. j a va 2 s . c o m } else if ("jp2".equals(suffix) || "jpx".equals(suffix)) { InputStream data = pdImage.createInputStream(JP2); org.apache.pdfbox.io.IOUtils.copy(data, out); org.apache.pdfbox.io.IOUtils.closeQuietly(data); } else if ("jb2".equals(suffix)) { InputStream data = pdImage.createInputStream(JB2); org.apache.pdfbox.io.IOUtils.copy(data, out); org.apache.pdfbox.io.IOUtils.closeQuietly(data); } else { //ImageIOUtil.writeImage(image, suffix, out); } } out.flush(); }