Don't like ads? PRO users don't see any ads ;-)
Guest

Make XHTML Valid and clean MSWord Miss

By: aMeeNeeMa on Apr 29th, 2012  |  syntax: ColdFusion  |  size: 1.82 KB  |  hits: 39  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <cffunction name="makexHTMLValid" access="public" output="false" returntype="string"
  2.                 displayname="Tidy parser" hint="Takes a string as an argument and returns parsed and valid xHTML">
  3.                 <cfargument name="strToParse" default="" required="yes" type="string">
  4.                 <cfargument name="bStripFrame" default="true" required="no" type="boolean">
  5.                 <cfargument name="bForceOutput" default="true" required="no" type="boolean">           
  6.                 <cfargument name="bKillMS" default="true" required="no" type="string">
  7.                 <cfargument name="bKillWord" default="true" required="yes" type="boolean">
  8.                 <cfargument name="bQuoteAsEntity" default="true" required="no" type="boolean">
  9.  
  10.                 <cfscript>
  11.                                 var jTidy = createObject("java","org.w3c.tidy.Tidy");
  12.                                 var sEncoding = 'UTF-8';
  13.  
  14.                                 var oReadBuffer = CreateObject("java","java.lang.String").init(strToParse).getBytes(sEncoding);
  15.                                 var oInP = createobject("java","java.io.ByteArrayInputStream").init(oReadBuffer);
  16.                                 var oOutx = createObject("java", "java.io.ByteArrayOutputStream").init();
  17.  
  18.                                 // configuration
  19.  
  20.                                 jTidy.setQuiet(true);
  21.                                 jTidy.setRawOut(true);
  22.                                 jTidy.setIndentContent(false);
  23.                                 jTidy.setSmartIndent(false);
  24.                                 jTidy.setIndentAttributes(true);
  25.                                 jTidy.setWraplen(1024);
  26.                                 jTidy.setXHTML(true);
  27.                                 jTidy.setShowWarnings(false);
  28.                                 jTidy.setInputEncoding(sEncoding);
  29.                                 jTidy.setOutputEncoding(sEncoding);
  30.                                 jTidy.setTidyMark(false);
  31.                                 jTidy.setForceOutput(true);
  32.  
  33.                                 if (bStripFrame) jTidy.setPrintBodyOnly(true);
  34.                                 if (bKillMS) jTidy.setMakeBare(true);
  35.                                 if (bKillWord) jTidy.setWord2000(true);
  36.                                 if (bQuoteAsEntity) jTidy.setQuoteMarks(true);
  37.  
  38.                                 // do the parsing
  39.                                 jTidy.parse(oInP,oOutx);
  40.                                 // close the stream
  41.                                 oOutx.close();
  42.                                 strToParse = oOutx.toString(sEncoding);                        
  43.                 </cfscript>
  44.                 <cfreturn strToParse>
  45. </cffunction>