Sidebar

How can I convert RTF to HTML?

0 votes
2.1K views
asked Feb 28, 2017 by mike-r-7535 (13,830 points)
Given an RTF string, how can I convert that to HTML?

1 Answer

0 votes

You can create this published function within QIE:

function convertRtfToHtml(rtfString) {   
   var os = new java.io.ByteArrayOutputStream();
   var is = null;
   var htmlString = '';
   try {
      var htmlEditorKit = new javax.swing.text.html.HTMLEditorKit();
      var rtfEditorKit = new javax.swing.text.rtf.RTFEditorKit();
      
      is = new java.io.ByteArrayInputStream(rtfString.getBytes("UTF-8"));
      var doc = rtfEditorKit.createDefaultDocument();
      rtfEditorKit.read(is, doc, 0);
      htmlEditorKit.write(os, doc, 0, doc.getLength());
      htmlString = os.toString();
   } 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 htmlString;
}

Here is an example of how you can use this function, assuming the OBX-5 field is an RTF string.

var rtfString = message.getNode("OBX-5");
var htmlString = convertRtfToHtml(rtfString);

 

answered Feb 28, 2017 by mike-r-7535 (13,830 points)
...