2

I need to create an online viewer which converts PDF files into browsable images, like http://view.samurajdata.se/. I would like to do this in Grails. Does Grails have any plugins for this?

3
  • It might be just me, but I really have no idea what you are actually asking here... Commented Sep 10, 2010 at 8:31
  • in my project user have the requirement where he can upload the pdf file and its get converted into the image file in grails Commented Sep 10, 2010 at 10:07
  • See stackoverflow.com/questions/550129/… It is a java soultion! Commented Dec 25, 2013 at 10:56

1 Answer 1

0

that's is possible by download PDFRenderer.jar fie and writing code is below

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]) 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.