Hi Andy, in our first tests it worked ok , but we have not tried it yet with heavy load and diferent pages. We will keep you informed,
regards Héctor http://coolbleiben.net On Thu, Dec 11, 2008 at 1:20 PM, Andy Wu <[EMAIL PROTECTED]> wrote: > > Thanks for sharing Héctor. > > I'd be interested to hear if you've encountered any issues with this > method of PDF production as it's likely the CFDOCUMENT implementation > will use the same libraries. > > Andy > > On 11/12/2008 05:29, Héctor Feliciano wrote: > > you may olso want to use jtidy > > with flying saucer with wrapper ( > > > http://groups.google.com/group/openbd/browse_thread/thread/dc3045e3ee08c359?pli=1 > > ): > > > > > > <cfset f.pdf = createobject("component","pdf") /> > > <cfset f.tidy = createobject("component","tidy") /> > > <cffile action="READ" file="#fun_fichero#" variable="local.content" > > charset="iso-8859-1" /> > > <cfset local.content = f.tidy.clean(local.content) /> > > <cfset f.pdf.encode(local.content,fun_fichero ) /> > > <cffile action="WRITE" file="#fun_fichero#" output="#local.content#" > > charset="iso-8859-1" /> > > > > > > > > > > ----------------------- pdf.cfc ------------------------ > > > > <cfcomponent displayname="htmlToPdf" output="true"> > > > > <cffunction name="encode" access="public" output="true" > > returntype="void" > > > <cfargument name="content" type="string" required="true"> > > <cfargument name="pdffile" type="string" required="true"> > > <cfargument name="downloadFile" type="Boolean" required="false" > > default="0"> > > > > <cfset local.outputPath = GetDirectoryFromPath(arguments.pdffile)> > > <cfset local.outputFile = GetFileFromPath(arguments.pdffile)> > > <cfset local.outputFile = > > replace(arguments.pdffile,listLast(local.outputFile,'.'),'pdf','ALL')> > > > > > > <cfset CFDocument = > > Createobject("java","com.myproject.CFWrapper.CFDocument") /> > > <cfset objOutput = CreateObject("java", "java.io.FileOutputStream" > > ).Init(CreateObject("java", "java.io.File" ).Init(JavaCast("string", > > local.outputFile))) /> > > <cfset > > > CFDocument.convertToPDF(objOutput,arguments.content,"file://#expandpath('.')#/") > > /> > > > > <cfif arguments.downloadFile> > > <cfcontent type="application/pdf" file="#local.outputFile#" reset="yes"> > > <cfheader name="Content-Disposition" > > value="filename=#getFileFromPath(local.outputFile)#"> > > </cfif> > > > > </cffunction> > > > > > > </cfcomponent> > > > > > > > > > > > > > > ---------------------- tidy.cfc ---------------------- > > > > <cfcomponent name="jtidy" displayname="jTidy" hint="clean out invalid > > html"> > > > > <cffunction name="clean" displayname="Tidy parser" hint="Takes a > > string as an argument and returns parsed and valid xHTML" output="true"> > > <cfargument name="strToParse" required="true" type="string" default="" /> > > <cfscript> > > /** > > * This function reads in a string, checks and corrects any > > invalid HTML. > > * By Greg Stewart > > * > > * @param strToParse The string to parse (will be written to file). > > * accessible from the web browser > > * @return returnPart > > * @author Greg Stewart (gregs(at)tcias.co.uk <http://tcias.co.uk>) > > * @version 1, August 22, 2004 > > > > * @version 1.1, September 09, 2004 > > * with the help of Mark Woods this UDF no longer requires temp > > files and only accepts > > * the string to parse > > */ > > > > var returnPart = ""; // return variable > > parseData = trim(arguments.strToParse); > > > > jTidy = createObject("java","org.w3c.tidy.Tidy"); > > > > jTidy.setQuiet(true); > > jTidy.setMakeClean(true); > > jTidy.setIndentContent(true); > > jTidy.setSmartIndent(true); > > jTidy.setIndentAttributes(true); > > jTidy.setWraplen(1024); > > jTidy.setXHTML(true); > > > > // create the in and out streams for jTidy > > readBuffer = > > CreateObject("java","java.lang.String").init(parseData).getBytes(); > > inP = > > createobject("java","java.io.ByteArrayInputStream").init(readBuffer); > > //ByteArrayOutputStream > > outx = createObject("java", > "java.io.ByteArrayOutputStream").init(); > > > > // do the parsing > > jTidy.parse(inP,outx); > > // close the stream > > // outx.close(); > > outstr = outx.toString(); > > > > // ok now strip all the header/body stuff > > // startPos = REFind("<body>", outstr)+6; > > // endPos = REFind("</body>", outstr); > > // returnPart = Mid(outstr, startPos, endPos-startPos); > > > > returnPart = outstr; > > </cfscript> > > <cfreturn returnPart /> > > </cffunction> > > </cfcomponent> > > > > regards > > Héctor > > coolbleiben.net <http://coolbleiben.net> > > > > On Wed, Dec 10, 2008 at 3:47 PM, asantiago <[EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED]>> wrote: > > > > > > If it can help or give you ideas there is also this project > > https://xhtmlrenderer.dev.java.net/ which also uses iText. > > I used it for simple HTML pages (with some CSS) and works fine. > > > > > > On Dec 10, 3:33 pm, Andy Wu <[EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED]>> wrote: > > > Hi Anthony, > > > > > > I'm planning to look at implementing CFDOCUMENT soon and will > > probably > > > leverage the iText library in doing so > > (http://www.lowagie.com/iText/). > > > It may offer some or all of the functionality that CFPDF offers > > so I may > > > delve further into it in future. > > > > > > Which functions of CFPDF are most critical to you? > > > > > > Thanks > > > Andy > > > > > > On 10/12/2008 04:11, ahixon2112 wrote: > > > > > > > I have outgrown my Adobe CF 8 Standard server, but as a small > non- > > > > profit hospital, we just don't have the budget for a > > multi-thousand > > > > dollar enterprise license. That said, I want to get away from > > Windows > > > > completely on the server side and migrate to an Ubuntu, > > OpenBD, MySQL > > > > solution. A couple of the projects I have coming up call for a > > way to > > > > convert uploaded Word documents to a PDF to be displayed to > normal > > > > users. > > > > > > > My question is this: Is there an alternative solution that other > > > > OpenBD users have implemented sans cfpdf type tags (I'm > > assuming those > > > > are proprietary to Adobe)? > > > > > > > Thanks in advance! > > > > > > > Anthony > > > > > > > From - Wed > > > > > --~--~---------~--~----~------------~-------~--~----~ Open BlueDragon Public Mailing List http://groups.google.com/group/openbd?hl=en official blog @ http://blog.openbluedragon.org/ !! save a network - trim replies before posting !! -~----------~----~----~----~------~----~------~--~---
