我正在尝试制作一个需要将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代码)。