Example usage for org.apache.poi.xslf.usermodel XSLFSlide draw

List of usage examples for org.apache.poi.xslf.usermodel XSLFSlide draw

Introduction

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

Prototype

@Override
public void draw(Graphics2D graphics) 

Source Link

Document

Render this sheet into the supplied graphics object

Usage

From source file:com.linksinnovation.elearning.utils.ppt2pdf.Ppt2Pdf.java

public static void convert(FileInputStream inputStream, FileOutputStream out)
        throws IOException, DocumentException {
    XMLSlideShow ppt = new XMLSlideShow(inputStream);
    inputStream.close();//from ww w  . j a va2s .c o m
    Dimension pgsize = ppt.getPageSize();

    Document document = new Document();
    PdfWriter pdfWriter = PdfWriter.getInstance(document, out);
    document.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
    document.open();
    for (XSLFSlide slide : ppt.getSlides()) {
        System.out.println(pgsize.getWidth() + " " + pgsize.getHeight());
        PdfGraphics2D graphics = (PdfGraphics2D) pdfWriter.getDirectContent()
                .createGraphics((float) pgsize.getWidth(), (float) pgsize.getHeight());
        slide.draw(graphics);
        graphics.dispose();
        document.newPage();
    }
    document.close();
}

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

License:Open Source License

/**
 * Create a new presentation slide.//from  w  w  w. j a v  a2 s  .  com
 *
 * @param slide the underlying apache POI slide.
 */
public PresentationSlide(XSLFSlide slide, int numSlide) {
    org.apache.poi.xslf.usermodel.XMLSlideShow 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 (NullPointerException 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);
}

From source file:pptxtopdf.TestPptxToPdf.java

public static void main(String[] args)
        throws FileNotFoundException, IOException, COSVisitorException, OpenXML4JException {
    // TODO code application logic here
    String filepath = "/home/sagar/Desktop/Shareback/test.pptx";
    FileInputStream is = new FileInputStream(filepath);
    XMLSlideShow pptx = new XMLSlideShow(is);
    Dimension pgsize = pptx.getPageSize();

    int idx = 1;//ww w  .  ja va2 s .c o  m
    for (XSLFSlide slide : pptx.getSlides()) {

        BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics = img.createGraphics();
        // clear the drawing area
        graphics.setPaint(Color.white);
        graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));

        // render
        slide.draw(graphics);

        // save the output
        FileOutputStream out = new FileOutputStream("/home/sagar/Desktop/Shareback/img/slide-" + idx + ".jpg");
        javax.imageio.ImageIO.write(img, "jpg", out);
        out.close();

        idx++;
    }

    String someimg = "/home/sagar/Desktop/Shareback/pptx/img/";

    PDDocument document = new PDDocument();
    File file = new File(someimg);
    if (!file.exists())
        file.mkdir();

    if (file.isDirectory()) {
        for (File f : file.listFiles()) {

            InputStream in = new FileInputStream(f);

            BufferedImage bimg = ImageIO.read(in);
            float width = bimg.getWidth();
            float height = bimg.getHeight();
            PDPage page = new PDPage(new PDRectangle(width + 10, height + 10));
            document.addPage(page);
            PDXObjectImage img = new PDJpeg(document, new FileInputStream(f));
            PDPageContentStream contentStream = new PDPageContentStream(document, page);
            contentStream.drawImage(img, 0, 0);
            contentStream.close();
            in.close();
        }

        document.save("/home/sagar/Desktop/Shareback/test-generated-pptx.pdf");
        document.close();
    } else {
        System.out.println(someimg + "is not a Directory");
    }

}

From source file:testppttopdf.TestPptToPdf.java

static void testPptxToPdf() {
    String filepath = "/home/sagar/Desktop/Shareback/test.pptx";
    FileInputStream is;//from  w ww.ja v  a 2 s. c o m
    try {
        is = new FileInputStream(filepath);

        XMLSlideShow pptx = new XMLSlideShow(is);
        Dimension pgsize = pptx.getPageSize();

        int idx = 1;
        for (XSLFSlide slide : pptx.getSlides()) {

            BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
            Graphics2D graphics = img.createGraphics();
            // clear the drawing area
            graphics.setPaint(Color.white);
            graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));

            // render
            slide.draw(graphics);

            // save the output
            FileOutputStream out = new FileOutputStream(
                    "/home/sagar/Desktop/Shareback/img/slide-" + idx + ".jpg");
            javax.imageio.ImageIO.write(img, "jpg", out);
            out.close();

            idx++;
        }

        String someimg = "/home/sagar/Desktop/Shareback/pptx/img/";

        PDDocument document = new PDDocument();
        File file = new File(someimg);
        if (!file.exists())
            file.mkdir();

        if (file.isDirectory()) {
            for (File f : file.listFiles()) {

                InputStream in = new FileInputStream(f);

                BufferedImage bimg = ImageIO.read(in);
                float width = bimg.getWidth();
                float height = bimg.getHeight();
                PDPage page = new PDPage(new PDRectangle(width + 10, height + 10));
                document.addPage(page);
                PDXObjectImage img = new PDJpeg(document, new FileInputStream(f));
                PDPageContentStream contentStream = new PDPageContentStream(document, page);
                contentStream.drawImage(img, 0, 0);
                contentStream.close();
                in.close();
            }

            document.save("/home/sagar/Desktop/Shareback/test-generated-pptx.pdf");
            document.close();
        } else {
            System.out.println(someimg + "is not a Directory");
        }

    } catch (Exception ex) {
        Logger.getLogger(TestPptToPdf.class.getName()).log(Level.SEVERE, null, ex);
    }
}