• java 通过html代码转换word文档


    java代码

    public void htmlToWord2() throws Exception {
             InputStream bodyIs = new FileInputStream("f:\1.html");
             InputStream cssIs = new FileInputStream("f:\1.css");
             String body = this.getContent(bodyIs);
             String css = this.getContent(cssIs);
             //拼一个标准的HTML格式文档
             String content = "<html><head><style>" + css + "</style></head><body>" + body + "</body></html>";
             InputStream is = new ByteArrayInputStream(content.getBytes("GBK"));
             OutputStream os = new FileOutputStream("f:\1.doc");
             this.inputStreamToWord(is, os);
          }
          
          /**
           * 把is写入到对应的word输出流os中
           * 不考虑异常的捕获,直接抛出
           * @param is
           * @param os
           * @throws IOException
           */
          private void inputStreamToWord(InputStream is, OutputStream os) throws IOException {
             POIFSFileSystem fs = new POIFSFileSystem();
             //对应于org.apache.poi.hdf.extractor.WordDocument
             fs.createDocument(is, "WordDocument");
             fs.writeFilesystem(os);
             os.close();
             is.close();
          }
          
          /**
           * 把输入流里面的内容以UTF-8编码当文本取出。
           * 不考虑异常,直接抛出
           * @param ises
           * @return
           * @throws IOException
           */
          private String getContent(InputStream... ises) throws IOException {
             if (ises != null) {
                StringBuilder result = new StringBuilder();
                BufferedReader br;
                String line;
                for (InputStream is : ises) {
                   br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                   while ((line=br.readLine()) != null) {
                       result.append(line);
                   }
                }
                return result.toString();
             }
             return null;
          }

    css  代码如下

    table {
           border: 1px solid blue;
            800px;
           height: 500px;
           text-align: center;
    }
    td {
            200px;
           border: 1px solid blue;
    }

    html对应的内容如下

    <table cellpadding="5" style="border-collapse: collapse;">
           <tr>
                  <td>中文</td>
                  <td>中文</td>
                  <td>中文</td>
                  <td>中文</td>
           </tr>
           <tr>
                  <td>中文</td>
                  <td>中文</td>
                  <td>中文</td>
                  <td>中文</td>
           </tr>
    </table>

    注:非原创

  • 相关阅读:
    【初探Spring】------Spring IOC(二):初始化过程---简介
    《Effective java》-----读书笔记
    【初探Spring】------Spring IOC(一)
    Nuxt 项目性能优化调研
    一个 API 设计上的失误
    mpvue 初体验之改写【车标速查】
    微信小程序开发初体验
    pointer-events: none 的两个应用场景
    小议短网址系统的设计(有些时候,需要换个角度思考问题)
    关于 parseInt 的一道有意思的面试题
  • 原文地址:https://www.cnblogs.com/wcnwcn/p/13397688.html
Copyright © 2020-2023  润新知