1.2k questions
1.4k answers
361 comments
339 users
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; }
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);