Created
September 12, 2014 17:45
-
-
Save umbraesoulsbane/f534f630921c041a272a to your computer and use it in GitHub Desktop.
FlipBook Auto-Creation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<cffunction name="onAfterFolderFlipBookSave" output="true"> | |
<cfargument name="event"> | |
<cfargument name="$"> | |
<!--- // Object being Saved // ---> | |
<cfset thisBean = arguments.$.event('activeBean') /> | |
<!--- // Construct Paths and FileName // ---> | |
<cfset fbCache = "#$.globalConfig('assetpath')#/#$.siteConfig('siteid')#/cache/file" /> | |
<cfset fbPDF = "#fbCache#/#thisBean.getValue('FILEID')#.pdf" /> | |
<cfset fbTemp = "#$.globalConfig('assetdir')#/#$.siteConfig('siteid')#/cache/temp" /> | |
<cfif NOT DirectoryExists(fbTemp) > | |
<cfdirectory action="create" directory="#fbTemp#" /> | |
</cfif> | |
<!--- // No need to do anything if there is no File being uploaded // ---> | |
<cfif Len(Trim(thisBean.getValue('FILEID'))) and FileExists(ExpandPath(fbPDF)) > | |
<!--- // Check for and Delete Existing Child Pages so we can build for PDF // ---> | |
<cfset childIterator = thisBean.getKidsIterator() /> | |
<cfif childIterator.GETRECORDCOUNT() > | |
<cfloop condition="childIterator.hasNext()"> | |
<cfset childItem = childIterator.next() /> | |
<cfset childItem.delete() /> | |
</cfloop> | |
</cfif> | |
<!--- // Load Java Object for PDFBox // ---> | |
<cfset objDocument = CreateObject("Java","org.apache.pdfbox.pdmodel.PDDocument") /> | |
<cfset pdfFile = objDocument.load(JavaCast("string",ExpandPath(fbPDF))) /> | |
<cfset pdfPages = pdfFile.getDocumentCatalog().getAllPages() /> | |
<!--- // Create Mura Pages from PDF Pages // ---> | |
<cfset errors = ArrayNew(1) /> | |
<cfloop index="pI" from="1" to="#ArrayLen(pdfPages)#"> | |
<cfset myPageImg = ImageNew(pdfPages[pI].convertToImage()) /> | |
<cfset imgCache = "#thisBean.getValue('contentid')#-p#pI#.png" /> | |
<cfimage action="write" source="#myPageImg#" destination="#fbTemp#/#imgCache#" overwrite="yes" /> | |
<cfscript> | |
newPage = $.getBean('content').loadBy(remoteid = '#thisBean.getValue('contentid')#-p#pI#'); | |
if (newPage.getIsNew()) { | |
newPage.setTitle('Page #pI#'); | |
newPage.setMenuTitle(''); | |
newPage.setURLTitle(''); | |
newPage.setHTMLTitle(''); | |
newPage.setApproved(1); | |
newPage.setIsNav(1); | |
newPage.setType('File'); | |
newPage.setSubType('FlipPage'); | |
newPage.setParentID(thisBean.getValue('contentid')); | |
newPage.setRemoteID('#thisBean.getValue('contentid')#-p#pI#'); | |
}; | |
// Will NOT work unless you have 'allowlocalfiles=true' in /config/settings.ini.cfm | |
newPage.setNewFile('#fbTemp#/#imgCache#'); | |
newPage.save(); | |
if ( !StructIsEmpty(newPage.getErrors()) ) { | |
ArrayAppend(errors, newPage.getErrors()); | |
}; | |
</cfscript> | |
<cffile action="delete" file="#fbTemp#/#imgCache#" /> | |
</cfloop> | |
</cfif> | |
</cffunction> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment