java ppt转图片 解决图片不清晰问题

987 阅读1分钟
   public static void main(String[] args) {
        File file = new File("/Users/**/Downloads/蚝大炮西南烧烤.pptx");
        // 放大比例
        double scale = 1.5;
        try (SlideShow<?, ?> ss = SlideShowFactory.create(file, null, true)) {
            Dimension pgsize = ss.getPageSize();
            int width = (int) (pgsize.width * scale);
            int height = (int) (pgsize.height * scale);
            for (Slide<?, ?> slide : ss.getSlides()) {
                BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
                Graphics2D graphics = img.createGraphics();
                // 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.setRenderingHint(Drawable.BUFFERED_IMAGE, new WeakReference<>(img));
                // 放大比例
                graphics.scale(scale, scale);
                // draw stuff
                slide.draw(graphics);
                try {
                    ImageIO.write(img, "PNG", new File("/Users/**/Downloads/ppt/"+System.currentTimeMillis()+"output.png"));
                } catch (IOException e) {
                    e.printStackTrace();
                }
                graphics.dispose();
                img.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

pom


        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-codec</artifactId>
            <version>1.13</version>
        </dependency>