This creates a png image from a pdf…
<cffunction name="PDFpageToImage" output="false">
<cfargument name="filebytes" required="true">
<cfargument name="pageNo" default="0">
<cfargument name="dpi" default="72">
<cfscript>
/* creates a 72dpi base64 png image of pdf page input as bytes (could also pass in filename)
for byteArray return, do return after baos.close() and doc.close()
'org.apache.pdfbox.app' is in bundles directory :)
*/
var PDDocument = CreateObject("java", "org.apache.pdfbox.pdmodel.PDDocument", "org.apache.pdfbox.app", "2.0.18");
var PDFRenderer = CreateObject("java", "org.apache.pdfbox.rendering.PDFRenderer", "org.apache.pdfbox.app", "2.0.18");
var ImageIO = CreateObject("java", "javax.imageio.ImageIO");
var doc = PDDocument.init().load(arguments.filebytes);
//var doc = PDDocument.init().load(arguments.filename);
var renderer = PDFRenderer.init(doc);
var image = renderer.renderImageWithDPI(arguments.pageNo, arguments.dpi);
var baos = createObject("java","java.io.ByteArrayOutputStream").init();
ImageIO.write(image, "PNG", baos);
baos.flush();
var imageInBytes = baos.toByteArray();
baos.close();
doc.close();
var Base64 = CreateObject("java", "java.util.Base64");
var b64 = Base64.getEncoder().encodeToString(imageInBytes);
return b64;
//output: 'res' is the returned base64 (b64)
//dataurl = "data:image/png;base64,#res#"; see pagetoimage.cfm
</cfscript>
</cffunction>