You can create this published function within QIE:
function convertHtmlToRtf(htmlString) {
var os = new java.io.ByteArrayOutputStream();
var is = null;
var rtfString = '';
try {
var htmlEditorKit = new javax.swing.text.html.HTMLEditorKit();
var rtfEditorKit = new javax.swing.text.rtf.RTFEditorKit();
htmlString = htmlString.replaceAll("<br.*?>","#NEW_LINE#");
htmlString = htmlString.replaceAll("</p>","#NEW_LINE#");
htmlString = htmlString.replaceAll("<p.*?>","");
is = new java.io.ByteArrayInputStream(htmlString.getBytes("UTF-8"));
var doc = htmlEditorKit.createDefaultDocument();
doc.putProperty("IgnoreCharsetDirective", true);
htmlEditorKit.read(is, doc, 0);
rtfEditorKit.write(os, doc, 0, doc.getLength());
rtfString = os.toString();
rtfString = rtfString.replaceAll("#NEW_LINE#","\\\\par ");
} catch (e) {
qie.warn("Caught error: " + e);
} finally {
if (os !== null) {
try {
os.close();
} catch (err) {
qie.warn("Error closing OutputStream: " + err);
}
}
if (is !== null) {
try {
is.close();
} catch (err) {
qie.warn("Error closing OutputStream: " + err);
}
}
}
return rtfString;
}
Here is an example of how you can use this function, assuming the OBX-5 first is an HTML string.
var htmlString = message.getNode("OBX-5");
var rtfString = convertHtmlToRtf(htmlString);