package railo.runtime.text.pdf; import java.io.IOException; import java.util.Set; import railo.commons.io.res.Resource; import railo.commons.lang.SystemOut; import railo.runtime.exp.ExpressionException; import railo.runtime.exp.PageException; import railo.runtime.img.Image; public abstract class PDF2Image { private static PDF2Image instance; public static PDF2Image getInstance() { if(instance==null){ try{ try{ instance=new PDF2ImageICEpdf(); SystemOut.printDate("using ICEpdf PDF2Image Library"); } catch(Throwable t){ instance=new PDF2ImagePDFRenderer(); SystemOut.printDate("using PDFRenderer PDF2Image Library"); } } catch(Throwable t){ instance=new PDF2ImageJPedal(); SystemOut.printDate("using JPedal PDF2Image Library"); } } //return new PDF2ImageJPedal(); return instance; } protected static Resource createDestinationResource(Resource dir,String prefix,int page,String format, boolean overwrite) throws ExpressionException { Resource res = dir.getRealResource(prefix+"_page_"+page+"."+format); if(res.exists()) { if(!overwrite)throw new ExpressionException("can't overwrite existing image ["+res+"], attribute [overwrite] is false"); } return res; } public abstract Image toImage(byte[] input,int page) throws IOException, PageException; 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; }