Example usage for org.apache.pdfbox.pdmodel.graphics.image PDImageXObject createInputStream

List of usage examples for org.apache.pdfbox.pdmodel.graphics.image PDImageXObject createInputStream

Introduction

In this page you can find the example usage for org.apache.pdfbox.pdmodel.graphics.image PDImageXObject createInputStream.

Prototype

@Override
    public InputStream createInputStream(List<String> stopFilters) throws IOException 

Source Link

Usage

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();
}