You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by bu...@apache.org on 2019/05/23 11:08:52 UTC

[Bug 63460] New: I have created pptx and ppt converter to images using apache poi but while converting some file i have an exception after two or three converts.

https://bz.apache.org/bugzilla/show_bug.cgi?id=63460

            Bug ID: 63460
           Summary: I have created pptx and ppt converter to images using
                    apache poi but while converting some file i have an
                    exception after two or three converts.
           Product: POI
           Version: unspecified
          Hardware: PC
                OS: Mac OS X 10.1
            Status: NEW
          Severity: critical
          Priority: P2
         Component: SL Common
          Assignee: dev@poi.apache.org
          Reporter: aliy.invoker@gmail.com
  Target Milestone: ---

Created attachment 36596
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36596&action=edit
Converted gradient slide [greyed]

//    Exception in thread "main" java.lang.IllegalArgumentException: Color 
//    parameter outside of expected range: Red

//    Main converter from both pptx and ppt

import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

public class Application {


    public static void main(String[] args) throws Exception {

        System.out.println("working");

        String directory = System.getProperty("user.home") + "/Desktop/";

        //creating an empty presentation
        File file=new File(directory + "test6.pptx");
        String fileName = file.getName();
        // Identify the file whether it is ppt or pptx
        String extension = fileName.substring(fileName.lastIndexOf(".") + 1);

        FileInputStream inputStream = new FileInputStream(directory + 
fileName);

        if (extension.equals("pptx")) {


            XMLSlideShow pptx = new XMLSlideShow(inputStream);

            //getting the dimensions and size of the slide
            Dimension pgsize = pptx.getPageSize();
            java.util.List<XSLFSlide> pptxSlide =
Arrays.asList(pptx.getSlides());

            for (int i = 0; i < pptxSlide.size(); i++) {
                BufferedImage img = new BufferedImage(pgsize.width,
pgsize.height,BufferedImage.TYPE_INT_RGB);

                Graphics2D graphics = createImage(img, pgsize);
                //render
                pptxSlide.get(i).draw(graphics);
                graphics.setComposite(AlphaComposite.DstOver);
                graphics.setPaint(Color.WHITE);

                //creating an image file as output
                imageFile(i, img);


                graphics.dispose();

            }


        }else if(extension.equals("ppt")){


            SlideShow ppt = new SlideShow(inputStream);

            //getting the dimensions and size of the slide
            Dimension pgsize = ppt.getPageSize();
            List<Slide> slide = Arrays.asList(ppt.getSlides());

            for (int i = 0; i < slide.size(); i++) {
                BufferedImage img = new BufferedImage(pgsize.width,
pgsize.height,BufferedImage.TYPE_INT_RGB);

                //render
                slide.get(i).draw(createImage(img, pgsize));


                //creating an image file as output
                imageFile(i, img);
            }
        }else {
            throw new Exception("Not compatible type ");
        }
    }

    private static void imageFile(int i, BufferedImage img) throws IOException
{
        FileOutputStream out = new FileOutputStream("ppt_image_" + i + ".png");
        javax.imageio.ImageIO.write(img, "png", out);
        System.out.println("Image successfully created");
        out.close();
    }


    private static Graphics2D createImage(BufferedImage img, Dimension pgsize){
        Graphics2D graphics = img.createGraphics();

        //clear the drawing area
        graphics.setPaint(Color.white);
        graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width,
pgsize.height));
        // default rendering options
        graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
        graphics.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
        graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
        graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
RenderingHints.VALUE_FRACTIONALMETRICS_ON);
        graphics.setComposite(AlphaComposite.DstOver);


        return graphics;
    }
}

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


[Bug 63460] I have created pptx and ppt converter to images using apache poi but while converting some file i have an exception after two or three converts.

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63460

Andreas Beeker <ki...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |NEEDINFO

--- Comment #2 from Andreas Beeker <ki...@apache.org> ---
I've just realized, that you've uploaded the .png file ... but I've asked for
the .pptx on stackoverflow [2]. I can generate the .png myself - please upload
the .pptx.


[2]
https://stackoverflow.com/questions/56221004/gradient-color-issue-when-converting-from-pptx-to-images-apache-poi

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


[Bug 63460] I have created pptx and ppt converter to images using apache poi but while converting some file i have an exception after two or three converts.

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63460

--- Comment #1 from Andreas Beeker <ki...@apache.org> ---
For testing I'll use the PPTX2PNG class [1], which is basically the same as
your code. As we haven't got that error on our huge test corpus (which is only
used before we do a release), I guess the color reference to "Red" was
generated by a custom tool, right? (i.e. do you know the origin of the .pptx
file?)

[1]
https://svn.apache.org/repos/asf/poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


[Bug 63460] I have created pptx and ppt converter to images using apache poi but while converting some file i have an exception after two or three converts.

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63460

--- Comment #4 from Andreas Beeker <ki...@apache.org> ---
Your provided file is not throwing the error. I'm using the trunk version of
POI, which should be similar to the latest released stable version. I've tested
with the PPTX2PNG class and also with the code you've provided ... in your
case, I would also use PPTX2PNG, because your code produces white images.
I guess the failing file is "test6.pptx" instead of "test7.pptx".

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


[Bug 63460] I have created pptx and ppt converter to images using apache poi but while converting some file i have an exception after two or three converts.

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63460

--- Comment #3 from Alloy <al...@gmail.com> ---
Created attachment 36598
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36598&action=edit
pptx file that i have used

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


[Bug 63460] Exception thrown when converting powerpoint files to images

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63460

Dominik Stadler <do...@gmx.at> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |RESOLVED
         Resolution|---                         |WORKSFORME

--- Comment #5 from Dominik Stadler <do...@gmx.at> ---
We could not reproduce this, so I am closing this for now, please reopen with
some more information if this still happens with the latest version Apache POI
5.0.0.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


[Bug 63460] Exception thrown when converting powerpoint files to images

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63460

Dominik Stadler <do...@gmx.at> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|I have created pptx and ppt |Exception thrown when
                   |converter to images using   |converting powerpoint files
                   |apache poi but while        |to images
                   |converting some file i have |
                   |an exception after two or   |
                   |three converts.             |

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org