ciao!

partendo dal presupposto che un A4 è 595.35x842 points.
per quanto riguarda la dimensione, ho provato questa conversione:
codice:
    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();
//                float areaX = page.getMediaBox().getWidth();
//                float areaY = page.getMediaBox().getHeight();
float finalW = w * 25.4f / 72;
                float finalH = h * 25.4f / 72;

                System.out.println(finalW);
                System.out.println(finalH);

                try (PDPageContentStream contents = new PDPageContentStream(doc, page)) {
                    contents.drawImage(pdImage, 0, 0, finalW, finalH);
                }
            }
            doc.save("/home/matte/Desktop/sample.pdf");
        }
    }
}

andiamo un pò meglio.
però, ad esempio una immagine ha queste dimensioni convertite: 903.1111x564.44446.
quindi sfora ancora in larghezza.