
Make XHTML Valid and clean MSWord Miss
By:
aMeeNeeMa on
Apr 29th, 2012 | syntax:
ColdFusion | size: 1.82 KB | hits: 39 | expires: Never
<cffunction name="makexHTMLValid" access="public" output="false" returntype="string"
displayname="Tidy parser" hint="Takes a string as an argument and returns parsed and valid xHTML">
<cfargument name="strToParse" default="" required="yes" type="string">
<cfargument name="bStripFrame" default="true" required="no" type="boolean">
<cfargument name="bForceOutput" default="true" required="no" type="boolean">
<cfargument name="bKillMS" default="true" required="no" type="string">
<cfargument name="bKillWord" default="true" required="yes" type="boolean">
<cfargument name="bQuoteAsEntity" default="true" required="no" type="boolean">
<cfscript>
var jTidy = createObject("java","org.w3c.tidy.Tidy");
var sEncoding = 'UTF-8';
var oReadBuffer = CreateObject("java","java.lang.String").init(strToParse).getBytes(sEncoding);
var oInP = createobject("java","java.io.ByteArrayInputStream").init(oReadBuffer);
var oOutx = createObject("java", "java.io.ByteArrayOutputStream").init();
// configuration
jTidy.setQuiet(true);
jTidy.setRawOut(true);
jTidy.setIndentContent(false);
jTidy.setSmartIndent(false);
jTidy.setIndentAttributes(true);
jTidy.setWraplen(1024);
jTidy.setXHTML(true);
jTidy.setShowWarnings(false);
jTidy.setInputEncoding(sEncoding);
jTidy.setOutputEncoding(sEncoding);
jTidy.setTidyMark(false);
jTidy.setForceOutput(true);
if (bStripFrame) jTidy.setPrintBodyOnly(true);
if (bKillMS) jTidy.setMakeBare(true);
if (bKillWord) jTidy.setWord2000(true);
if (bQuoteAsEntity) jTidy.setQuoteMarks(true);
// do the parsing
jTidy.parse(oInP,oOutx);
// close the stream
oOutx.close();
strToParse = oOutx.toString(sEncoding);
</cfscript>
<cfreturn strToParse>
</cffunction>