001 package railo.runtime.text.pdf; 002 003 import java.io.IOException; 004 import java.util.Set; 005 006 import railo.commons.io.res.Resource; 007 import railo.commons.lang.SystemOut; 008 import railo.runtime.exp.ExpressionException; 009 import railo.runtime.exp.PageException; 010 import railo.runtime.img.Image; 011 012 public abstract class PDF2Image { 013 014 private static PDF2Image instance; 015 016 public static PDF2Image getInstance() { 017 if(instance==null){ 018 try{ 019 try{ 020 instance=new PDF2ImageICEpdf(); 021 SystemOut.printDate("using ICEpdf PDF2Image Library"); 022 } 023 catch(Throwable t){ 024 instance=new PDF2ImagePDFRenderer(); 025 SystemOut.printDate("using PDFRenderer PDF2Image Library"); 026 } 027 } 028 catch(Throwable t){ 029 instance=new PDF2ImageJPedal(); 030 SystemOut.printDate("using JPedal PDF2Image Library"); 031 } 032 } 033 //return new PDF2ImageJPedal(); 034 return instance; 035 } 036 037 038 protected static Resource createDestinationResource(Resource dir,String prefix,int page,String format, boolean overwrite) throws ExpressionException { 039 Resource res = dir.getRealResource(prefix+"_page_"+page+"."+format); 040 if(res.exists()) { 041 if(!overwrite)throw new ExpressionException("can't overwrite existing image ["+res+"], attribute [overwrite] is false"); 042 } 043 return res; 044 } 045 046 047 public abstract Image toImage(byte[] input,int page) throws IOException, PageException; 048 public abstract void writeImages(byte[] input,Set pages,Resource outputDirectory, String prefix,String format, int scale, boolean overwrite, boolean goodQuality,boolean transparent) throws PageException, IOException; 049 }