2010-09-10 10 views
2

J'ai besoin de créer un visualiseur en ligne qui convertit les fichiers PDF en images navigables, comme http://view.samurajdata.se/. Je voudrais le faire dans Grails. Est-ce que Grails a des plugins pour ça?Comment convertir un PDF en image Web?

+0

Il est peut-être juste moi, mais je ne sais vraiment pas ce que vous demandez en fait ici ... – peSHIr

+0

dans mon projet utilisateur avoir l'exigence où il peut télécharger le fichier pdf et son être converti en le fichier image en grails –

+0

Voir http://stackoverflow.com/questions/550129/export-pdf-pages-to-a-series-of-images- in-java C'est une java soultion! –

Répondre

0

qui est possible est par téléchargement PDFRenderer.jar et l'écriture de code FIE est inférieur

downloadedfile = request.getFile('sourceFile'); 
println "download file->"+downloadedfile 
File destFile=new File('web-app/source-pdf/'+downloadedfile+'.pdf'); 

if(destFile.exists()){ 

    destFile.delete(); 

} 

File file = null; 
try{ 
    file = new File('web-app/source-pdf/'+downloadedfile+'.pdf'); 
    downloadedfile.transferTo(file) 
    println "file->"+file 
}catch(Exception e){ 
    System.err.println("File Already Use") 

    //out.close(); 
} 

File imageFile=new File("web-app/pdf-images"); 

    if(imageFile.isDirectory()) 
    { 
     String[] list=imageFile.list() 

    for(int i=0;i<list.length;i++){ 
     File img=new File("web-app/pdf-images/"+i+".png") 
     img.delete() 

    } 
    } 
    //response.setContentType("image/png"); 
    // response.setHeader("Cache-control", "no-cache"); 

    RandomAccessFile raf; 
    BufferedImage[] img; 

    // response.setContentType("image/png"); 
     // response.setHeader("Cache-control", "no-cache"); 





    file=new File('web-app/source-pdf/'+downloadedfile+'.pdf'); 

    try { 
     raf = new RandomAccessFile(file, "rws"); 

     FileChannel channel = raf.getChannel(); 
     ByteBuffer buf = channel.map(FileChannel.MapMode.READ_WRITE, 0, channel.size()); 
     PDFFile pdffile = new PDFFile(buf); 
     // draw the first page to an image 
     int num=pdffile.getNumPages(); 
     img=new BufferedImage[num] 

     for(int i=0;i<num;i++) 
     { 
      PDFPage page = pdffile.getPage(i); 

      //get the width and height for the doc at the default zoom 
      int width=(int)page.getBBox().getWidth(); 
      int height=(int)page.getBBox().getHeight(); 

      Rectangle rect = new Rectangle(0,0,width,height); 
      int rotation=page.getRotation(); 
      Rectangle rect1=rect; 
      if(rotation==90 || rotation==270) 
       rect1=new Rectangle(0,0,(int)rect.height,(int)rect.width); 


      //generate the image 
      img[i] = (BufferedImage)page.getImage(
         width,height , //width & height 
         rect1, // clip rect 
         null, // null for the ImageObserver 
         true, // fill background with white 
         true // block until drawing is done 
       ); 

      ImageIO.write(img[i], "png",new File("web-app/pdf-images/"+i+".png")); 
     } 

    // out.close(); 
    } 
    catch (FileNotFoundException e1) { 
     System.err.println(e1.getLocalizedMessage()); 
    } catch (IOException e) { 
     System.err.println(e.getLocalizedMessage()); 
    } 
    file = null; 
    render(view:'save',model:[images:img]) 
Questions connexes