Android pptx到pdf转换器(离线不是第三方api)

时间:2019-07-13 06:55:35

标签: java android pdf itext powerpoint

我正在尝试制作一个需要将pptx转换为pdf文件的移动应用程序,为此,我使用了“ itextpdf” lib并尝试添加代码,但是代码无法正常工作就我而言。

                try {
                mAffineTransform = new AffineTransform();
                FileInputStream inputStream = new FileInputStream(filePath);
                System.out.println("1111");
                double zoom = 2;
                mAffineTransform.setToScale(zoom, zoom);
                Document pdfDocument = new Document();
                PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument, new FileOutputStream(filePathForPDF));
                System.out.println("222");
                PdfPTable table = new PdfPTable(1);
                pdfWriter.open();
                pdfDocument.open();
                System.out.println("333");
                Dimension pgsize = null;
                Image slideImage = null;
                BufferedImage img = null;


                System.out.println("Callll");
                XMLSlideShow ppt = new XMLSlideShow(inputStream);

                pgsize = ppt.getPageSize();

                XSLFSlide slide[] = ppt.getSlides();
                pdfDocument.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
                pdfWriter.open();
                pdfDocument.open();
                System.out.println(slide.length);

                for (int i = 0; i < slide.length; i++) {

                    img = new BufferedImage((int) Math.ceil(pgsize.width * zoom), (int) Math.ceil(pgsize.height * zoom), BufferedImage.TYPE_INT_RGB);
                    Graphics2D graphics = img.createGraphics();
                    graphics.setTransform(mAffineTransform);
                    graphics.setPaint(Color.white);
                    graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
                    slide[i].draw(graphics);
                    graphics.getPaint();

                    slideImage = Image.getInstance(img, null);

                    table.addCell(new PdfPCell(slideImage, true));
                }

                pdfDocument.add(table);
                pdfDocument.close();
                pdfWriter.close();
                System.out.println("Powerpoint file converted to PDF successfully");
            } catch (Exception ex) {
                System.out.println("Exception" + ex.getMessage());

            }

我将此代码测试为可正常工作的Java代码。我了解为何无法在android应用程序中工作的问题。因为那里使用java.awt。*包用于“ Color / Graphics2D ...”,该程序包不支持android

任何人都可以帮助我如何解决此问题,或者可以使用更好的lib / jar,但我不希望在线方式(例如任何第三api或php代码)。

0 个答案:

没有答案