您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    效劳端WORD文件模板书签交流、转换文件类型的另类完成
    时间:2021-08-11 08:50 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    市面上处置文字的的办公软件有很多,包括WPS、MSOffice、永中OFFICE,当然还有开源的openoffice、liboffice等。我们在项目开发进程中常常会遇到预览word文件,数据库中数据自动填充word模板等需求。如今可以满足以上需求的技术有很多,效劳端可经过POI\aspose等处置,也可经过客户端调用OFFICE组件处置,本人曾经在这方便做了很多测试,最终发现兼容性最好的、接口对JAVA顺序员最友好的就属永中OFFICE,由于它基本就是JAVA完成的,运用起来十分方便。

    效劳端WORD文件模板书签交流、转换文件类型的另类完成

    我的测试环境运用的是永中2016版本,它运转要求JRE1.6,且我发现它应该是对JRE停止过重构,按永中SDK要求编写代码经过自ORACAL官网下载的jdk1.6编译后运转是失败的,如今都2021年了,我们的项目绝大少数都JDK1.8以上版本了,那么怎样让SDK兼容我们的项目呢?怎样完成标题中提到的两个需求呢?下面我说说我的处置办法吧:

    1、下载永中软件并安装(官网下载即可) 2、安装后翻开安装途径可以看到如下图

    效劳端WORD文件模板书签交流、转换文件类型的另类完成

    永中软件安装目录

    JRE:即永中软件的运转环境

    Yozo_Office.jar: 即永中为开发者提供的SDK,可以将jar导入到工程中

    3、编写WORD文件处置效劳组件

    处置word文件的代码片段,详细代码请在文后下载源码查阅

    处置word文件的代码片段,详细代码请在文后下载源码查阅     

     

    /** 

         * 将word文件转换为对应格式的文件的字节数组 

         * @param type 将word文件转换成的文件格式 pdf、html\ofd\txt\xml 

         * @return 

         * @throws IOException 

         */ 

        public byte[]  convertFile(String type) throws IOException { 

            int typePdf = FileConstants.TYPE_PDF; 

            if("html".equals(type.toLowerCase())) {//此功用转换后乱码,前期可采用 this.workbook.saveAs("D:/2.html"); 方式存储html后,将字节前往 

                typePdf= FileConstants.FILETYPE_HTML; 

            }else if("ofd".equals(type.toLowerCase())) { 

                typePdf= FileConstants.TYPE_OFD;    // 这个是不成功的,应该是版本太低 

            }else if("txt".equals(type.toLowerCase())) { 

                typePdf = FileConstants.TYPE_TXT; 

            }else if("xml".equals(type.toLowerCase())) { 

                typePdf = FileConstants.FILETYPE_XML; 

            }else if("doc".equals(type.toLowerCase())||"xls".equals(type.toLowerCase())||"ppt".equals(type.toLowerCase())) { 

                typePdf = FileConstants.TYPE_MS; 

            }else if("docx".equals(type.toLowerCase())||"xlsx".equals(type.toLowerCase())||"pptx".equals(type.toLowerCase())) { 

                typePdf = FileConstants.TYPE_MS_EX; 

            } 

             

            return this.workbooks.getWorkbookAsByteArray(workbook, typePdf); 

        } 

     

    /** 

         * 交流word模板中的书签 

         * @param jsonObject    数据内容 {“bookmarkname”:”test“} 

         */ 

        public void replaceBookMark(JSONObject jsonObject) { 

            BookMarks bookMarks = this.document.getBookMarks(); 

            BookMark[] allBookmarks = bookMarks.getAllBookmarks(); 

            for(BookMark bookMark:allBookmarks){ 

                String name = bookMark.getName(); 

                TextRange range = bookMark.getRange(); 

    (责任编辑:admin)