Example usage for org.apache.poi.sl.usermodel Slide draw

List of usage examples for org.apache.poi.sl.usermodel Slide draw

Introduction

In this page you can find the example usage for org.apache.poi.sl.usermodel Slide draw.

Prototype

void draw(Graphics2D graphics);

Source Link

Document

Convenience method to draw a sheet to a graphics context

Usage

From source file:org.quelea.data.powerpoint.PresentationSlide.java

License:Open Source License

/**
 * Create a new presentation slide.// www .  j a va 2  s.com
 *
 * @param slide the underlying apache POI slide.
 */
public PresentationSlide(Slide slide, int numSlide) {
    SlideShow slideshow = slide.getSlideShow();
    if (Math.abs(slideshow.getPageSize().getHeight() - HEIGHT) > 0.1) {
        int adjustHeight = HEIGHT;
        int adjustWidth = (int) ((adjustHeight / slideshow.getPageSize().getHeight())
                * slideshow.getPageSize().getWidth());
        scaleWidth = (double) adjustWidth / slideshow.getPageSize().getWidth();
        scaleHeight = (double) adjustHeight / slideshow.getPageSize().getHeight();
        slideshow.setPageSize(new Dimension(adjustWidth, adjustHeight));
    }
    BufferedImage originalImage = new BufferedImage((int) slideshow.getPageSize().getWidth(),
            (int) slideshow.getPageSize().getHeight(), BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2 = originalImage.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    try {
        g2.setTransform(AffineTransform.getScaleInstance(scaleWidth, scaleHeight));
        slide.draw(g2);
    } catch (Exception ex) {
        if (QueleaProperties.get().getUsePP()) {
            LOGGER.log(Level.INFO, "Couldn't use library to generate thumbnail, using default");
            draw(g2, originalImage.getWidth(), originalImage.getHeight(), numSlide);
        } else {
            throw ex;
        }
    }
    image = new WritableImage(originalImage.getWidth(), originalImage.getHeight());
    SwingFXUtils.toFXImage(originalImage, image);
    originalImage.flush();
    originalImage = null;
}