ciao!
sto cercando creare un pdf con immagini prese da un ArrayList<String>.
una immagine a pagina:
le pagine vengono create correttamente.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"); } } }
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??

Rispondi quotando