Example usage for org.apache.poi.sl.usermodel SlideShow setPageSize

List of usage examples for org.apache.poi.sl.usermodel SlideShow setPageSize

Introduction

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

Prototype

void setPageSize(Dimension pgsize);

Source Link

Document

Change the current page size

Usage

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

License:Open Source License

/**
 * Create a new presentation slide./*from   ww w.j  a v  a 2  s .  c o m*/
 *
 * @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;
}