Hi Jessy,

here a few points about this issue:
* PDF support is relatively new and there are a few/lot (?) of cases which work 
differently opposed to PPTX->PNG
* I can have a look at your input file and try to figure out what's wrong - 
either send it to the list or to me privately
* Cascaded properties from themes are a source of errors - POIs handling is a 
bit shirtsleeved in this area
* Please try out the convenience tool PPTX2PNG 
(http://poi.apache.org/components/slideshow/ppt-wmf-emf-renderer.html)
* Also check the nightly - description about how to use the nightly is also in 
the above link. In case I fix something, it would be cool, if you could verify 
it

Andi


On 29.05.21 12:41, Jessy Ping wrote:
HI all,

I am trying to convert pptx file containing a custom theme and two text
boxes to pdf. I am able to convert into PDF, but the theme  size is reduced
and the two text box is printed on a white background.Any insights will be
helpful.
Code below,

static void convertToPdf(String fileName) throws IOException,
DocumentException {
     FileInputStream inputStream = new FileInputStream(pptLocation + fileName + 
PPT);
     double zoom = 2;
     AffineTransform at = new AffineTransform();
     at.setToScale(zoom, zoom);
     Document pdfDocument = new Document();
     PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument, new 
FileOutputStream(pdfLocation + fileName + PDF));
     PdfPTable table = new PdfPTable(1);
     pdfWriter.open();
     pdfDocument.open();
     Dimension pgsize = null;
     Image slideImage = null;
     BufferedImage img = null;


     XMLSlideShow ppt = new XMLSlideShow(inputStream);
     pgsize = ppt.getPageSize();
     List<XSLFSlide> slides = ppt.getSlides();
     pdfDocument.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) 
pgsize.getHeight()));
     pdfWriter.open();
     pdfDocument.open();
     for (int i = 0; i < slides.size(); 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(at);

         graphics.setPaint(Color.white);
         graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, 
pgsize.height));
         slides.get(i).draw(graphics);
         graphics.getPaint();
         slideImage = Image.getInstance(img, null);
         table.addCell(new PdfPCell(slideImage, false));

     }
     pdfDocument.add(table);
     pdfDocument.close();
     pdfWriter.close();

}




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
For additional commands, e-mail: user-h...@poi.apache.org

Reply via email to