Запись изображения в PDF-файл в Java

m написание кода для преобразования слайдов Microsoft Power Point (ppt) в изображения и записи сгенерированных изображений в файл PDF. Следующий код генерирует и записывает изображения в PDF-файл, но проблема яя сталкиваюсь, когда я пишу изображение в PDF-файлРазмер превышает размер страницы в формате PDF, и я могу видеть только 75% изображения, остальное не видно. Еще одна вещь, на которую следует обратить внимание: написанные изображения в pdf-файле выглядят как увеличенные или увеличенные. Взгляните на следующий фрагмент кода:

for (int i = 0; i < slide.length; i++) {
    BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,   BufferedImage.TYPE_INT_RGB);
    Graphics2D graphics = img.createGraphics();
    graphics.setPaint(Color.white);
    graphics.fill(new Rectangle(0, 0, pgsize.width, pgsize.height));
    slide[i].draw(graphics);
    fileName="C:/DATASTORE/slide-"+(i+1)+".png";
    FileOutputStream out = new FileOutputStream(fileName);
    javax.imageio.ImageIO.write(img, "png", out);
out.flush();
out.close();
com.lowagie.text.Image image =com.lowagie.text.Image.getInstance(fileName);
            image.setWidthPercentage(40.0f);
    doc.add((image));
    }

doc.close();
} catch(DocumentException de) {
          System.err.println(de.getMessage());
    }

Если кто-нибудь знает решение, пожалуйста, помогите мне исправить. Спасибо.

Вот код, который выполняет задачу, которую я хотел. Сейчас я'Я получаю желаемые результаты после выполнения рекомендаций Бруно Лоуаги.

Но, как указывал ранее Бруно Лоуаги, это проблема сгенерированного png-изображения. Сгенерированное изображение в формате png неверно, потому что форма или изображение на слайде перекрываются с текстами слайда. Можете ли вы помочь мне выявить и исправить ошибку?

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import com.itextpdf.text.Image;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
public class ConvertSlidesIntoImages {
    public static void main(String[] args){
    try {
        FileInputStream is = new FileInputStream("C:/DATASTORE/testPPT.ppt");
        SlideShow ppt = new SlideShow(is);
        is.close();
        String fileName;
        Dimension pgsize = ppt.getPageSize();
        Slide[] slide = ppt.getSlides();
        Document doc=new Document();
        PdfWriter.getInstance(doc, new  FileOutputStream("c:/DATASTORE/convertPPTSlidesIntoPDFImages.pdf"));
        doc.open();

        for (int i = 0; i < slide.length; i++) {
            BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
            Graphics2D graphics = img.createGraphics();
            graphics.setPaint(Color.white);
            graphics.fill(new Rectangle(0, 0, pgsize.width, pgsize.height));
            slide[i].draw(graphics);
            fileName="C:/DATASTORE/slide-"+(i+1)+".png";
            FileOutputStream out = new FileOutputStream(fileName);
            javax.imageio.ImageIO.write(img, "png", out);
            out.flush();
            out.close();
            com.itextpdf.text.Image image =com.itextpdf.text.Image.getInstance(fileName);
            doc.setPageSize(new com.itextpdf.text.Rectangle(image.getScaledWidth(), image.getScaledHeight()));
            doc.newPage();
            image.setAbsolutePosition(0, 0);
            doc.add(image);
            }
    doc.close();
}catch(DocumentException de) {
    System.err.println(de.getMessage());
    }
    catch(Exception ex) {
    ex.printStackTrace();
    }
}

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос