1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| public static Image getImageFromPdf(String fileUrl,int largeur, int hauteur, int pageAff) throws IOException{
if (fileUrl.equals(null)||fileUrl.equals("")){
return new BufferedImage(largeur, hauteur, BufferedImage.SCALE_SMOOTH);
} else {
File file = new File(fileUrl);
RandomAccessFile raf = new RandomAccessFile(file, "r");
byte[] b = new byte[(int)raf.length()];
raf.readFully(b);
PDFFile pdffile = new PDFFile(ByteBuffer.wrap(b));
// draw the first page to an image
PDFPage page = pdffile.getPage(pageAff);
//get the width and height for the doc at the default zoom
Rectangle rect = new Rectangle(0,0, (int)page.getWidth(),(int)page.getHeight());
// on defini les proprtion de l'image selon que l'on soit en portrait ou en paysage
int x = 0;
int y = 0;
if (page.getWidth() > page.getHeight()){ // la largeur est supperieur a la hauteur , on est en paysage
x = largeur;
y = (int) (largeur/1.41);
} else {
x = largeur;
y = hauteur;
}
//generate the image
Image result = page.getImage(
rect.width, rect.height, //width & height
rect, // clip rect
null, // null for the ImageObserver
true, // fill background with white
true // block until drawing is done
).getScaledInstance(x, y, BufferedImage.SCALE_SMOOTH);// redimentionne l'image au format de la jpanel
// on libere toutes les ressources
raf.close();
pdffile =null;
page=null;
return result;
}
} |
Partager