joget 解决word导出插件中,富文本编辑器的内容出现多个换行

joget项目中的word导出插件

插件本身由公司大牛开发,但是大牛离职,客户有新需求,所以由我来修改

插件本身调用了joget自带的将joget表单转换为html的方法

 String header = getPropertyString("headerHtml");
 header = AppUtil.processHashVariable(header, null, null, null);
 ...
 String s = FormPdfUtil.formatHtml(selectedFormHtml, header, footer, css, showNotSelectedOptions, repeatHeader, repeatFooter);

其中FormPdfUtil.formatHtml的参数 是由AppUtil获取到的 流程哈希变量的值 ,然后交由 FormPdfUtil转换成html格式

而后大牛使用了 类库 Doc4j 将html转换成word形式

        // To docx, with content controls
        WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
        XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage);

        wordMLPackage.getMainDocumentPart().getContent().addAll(
                XHTMLImporter.convert( xhtml, null) );

        wordMLPackage.save(new java.io.File(outfile));

但是由于joget 转换html 的方法 会产生一些 带有特殊类名的div ,input , 在word中会导致很多换行

//


//

定位到问题所在就有了解决思路 , 使用Jsoup 类库 , 可以将html 转换成Document ,可以像jquery一样通过选择器操作dom

Jsoup 依赖:

   
      org.jsoup
      jsoup
      1.3.3
  

核心代码:

        Document document = Jsoup.parse(html);
        Elements form_clear = document.getElementsByClass("form-clear");
        for (int i = 0; i 

将处理完的html 交由Doc4j 处理即可

你可能感兴趣的:(joget)