ciao!

sto cercando creare un pdf con immagini prese da un ArrayList<String>.
una immagine a pagina:
codice:
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;

import java.io.IOException;
import java.util.ArrayList;

public class PdfGallery {
    private ArrayList<String> images = null;

    public PdfGallery(ArrayList<String> images) {
        this.images = images;
    }

    public void createPdf() throws IOException {
        try (PDDocument doc = new PDDocument()) {
            for (String str : images) {
                PDPage page = new PDPage(PDRectangle.A4);
                doc.addPage(page);
                PDImageXObject pdImage = PDImageXObject.createFromFile(str, doc);
                float w = pdImage.getWidth();
                float h = pdImage.getHeight();
                try (PDPageContentStream contents = new PDPageContentStream(doc, page)) {
                    contents.drawImage(pdImage, 0, 0, w, h);
                }
            }
            doc.save("/home/matte/Desktop/sample.pdf");
        }
    }
}
le pagine vengono create correttamente.
e le immagini vengono aggiunte alla pagina.
solo che:
- se sono grandi (ad esempio 1920*1080) si vedono sgranate e / o più grandi della pagina
- se sono piccole (ad esempio 300*400) si vedono sgranate (anche se l'originale ovviamente non lo è)

per creare il pdf sto usando PDFBox.
qualcuno ha qualche idea??