李永谊 發表於 2021-6-10 17:48:00

国产麒麟操作系统调用PageOffice在线编辑保存WPS文档

<h2 id="国产麒麟操作系统调用pageoffice在线编辑保存wps文档">国产麒麟操作系统调用PageOffice在线编辑保存WPS文档</h2>
<p>​        自国家大力推广国产软件以来,麒麟软件的麒麟操作系统在软硬件适配方面不断拓展,整个生态日渐完善,已经基本满足政府、企业等日常办公需求。在Windows系统环境下,PageOffice产品积累了十多年的Office在线编辑研发经验和应用经验,现在针对麒麟系统在线办公发布了支持国产操作系统的中间件产品<strong>PageOffice国产版</strong>,能很好的支持龙芯,兆芯,飞腾,鲲鹏,X86,ARM等不同CPU芯片架构的麒麟操作系统。</p>
<p>​        PageOffice产品调用金山API接口,启动本地的WPS办公应用程序在线打开文档,支持在麒麟系统中调用360、奇安信、火狐等浏览器,在线打开doc文档、电子表格、演示文稿等Office文件,进而实现嵌入式的文档编辑和控制。</p>
<p>​        对于开发人员来说,不需要额外的学习成本,就可以轻松掌握。此前集成了Windows版PageOffice的应用系统也几乎无需修改代码,平滑完成国产化版本的改版迁移。</p>
<h3 id="pageoffice国产版开发包结构">PageOffice国产版开发包结构</h3>
<p><img src="https://img2020.cnblogs.com/blog/1357420/202105/1357420-20210525181934124-231544982.png"></p>
<ul>
<li>Client:此目录下是PageOffice的客户端安装程序</li>
<li>Samplesgc5:此文件夹是PageOffice的Demo程序</li>
<li>Server:此目录下是集成PageOffice产品所需的jar包和配置文件</li>
</ul>
<h3 id="集成开发步骤ssm">集成开发步骤(SSM)</h3>
<ol>
<li>
<p>将“Server” 文件夹中pageoffice的jar拷贝到您自己Web项目中WEB-INF/lib目录下;</p>
</li>
<li>
<p>参考“Server” 文件夹中的web.xml 文件, 配置自己Web 项目中的web.xml, 也可以直接把下面的这段配置添加到自己的web.xml 中;</p>
<pre><code class="language-xml">        &lt;!-- PageOffice Begin --&gt;
        &lt;servlet&gt;
                &lt;servlet-name&gt;poserver&lt;/servlet-name&gt;
                &lt;servlet-class&gt;com.zhuozhengsoft.pageoffice.poserver.Server&lt;/servlet-class&gt;
        &lt;/servlet&gt;
        &lt;servlet-mapping&gt;
                &lt;servlet-name&gt;poserver&lt;/servlet-name&gt;
                &lt;url-pattern&gt;/poserver.zz&lt;/url-pattern&gt;
        &lt;/servlet-mapping&gt;
        &lt;servlet-mapping&gt;
                &lt;servlet-name&gt;poserver&lt;/servlet-name&gt;
                &lt;url-pattern&gt;/posetup.exe&lt;/url-pattern&gt;
        &lt;/servlet-mapping&gt;
        &lt;servlet-mapping&gt;
                &lt;servlet-name&gt;poserver&lt;/servlet-name&gt;
                &lt;url-pattern&gt;/pageoffice.js&lt;/url-pattern&gt;
        &lt;/servlet-mapping&gt;
        &lt;!-- PageOffice End --&gt;
</code></pre>
</li>
<li>
<p>在后台Controller中编写代码调用PageOffice</p>
<pre><code class="language-java">@RequestMapping(value="/openWord")
public ModelAndView openWord(HttpServletRequest request){
    PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
    poCtrl1.setServerPage("poserver.zz"); //此行必须
    poCtrl1.setSaveFilePage("xxxController/savefile");//设置处理文件保存的Controller方法
    poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");//打开文件
    request.setAttribute("poCtrl1", poCtrl1.getHtmlCode("PageOfficeCtrl1"));
   
    ModelAndView mv = new ModelAndView("Word");
        return mv;
}
</code></pre>
<ol start="4">
<li>在视图html代码中获取第3步request对象中的poCtrl1,显示文档编辑区域</li>
</ol>
<pre><code class="language-html">        &lt;div style="height:700px;width:auto;"&gt;
      ${pdfCtrl1}
    &lt;/div&gt;
</code></pre>
</li>
</ol>
<h3 id="集成开发步骤springboot">集成开发步骤(SpringBoot)</h3>
<ol>
<li>
<p>如果在自己项目的根目录下创建lib文件夹,将“Server” 文件夹中pageoffice的jar拷贝到此lib目录下,那么pom.xml添加下面代码(注意修改为自己使用的pageoffice的jar包版本号):</p>
<pre><code class="language-xml">&lt;dependency&gt;
    &lt;groupId&gt;com.zhuozhengsoft&lt;/groupId&gt;&lt;!--自定义--&gt;
    &lt;artifactId&gt;pageoffice&lt;/artifactId&gt;    &lt;!--自定义--&gt;
    &lt;version&gt;5.2.0.1&lt;/version&gt; &lt;!--自定义--&gt;
    &lt;scope&gt;system&lt;/scope&gt;
    &lt;!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它--&gt;
    &lt;!--${project.basedir}为springboot内置属性--&gt;
    &lt;systemPath&gt;${project.basedir}/lib/pageoffice5.2.0.1.jar&lt;/systemPath&gt;
&lt;/dependency&gt;
</code></pre>
<p>如果使用mvn命令安装pageoffice的jar包到本地仓库,那么pom.xml添加下面的代码即可:</p>
<pre><code class="language-xml">&lt;dependency&gt;
    &lt;groupId&gt;com.zhuozhengsoft&lt;/groupId&gt;&lt;!--自定义--&gt;
    &lt;artifactId&gt;pageoffice&lt;/artifactId&gt;    &lt;!--自定义--&gt;
    &lt;version&gt;5.2.0.1&lt;/version&gt; &lt;!--自定义--&gt;
&lt;/dependency&gt;
</code></pre>
<p>mvn命令安装pageoffice的jar包到本地仓库方法,参考下面地址:</p>
<p>https://www.kancloud.cn/pageoffice_course_group/pageoffice_course/653878</p>
</li>
<li>
<p>添加下面的PageOffice的服务器端授权程序的@Bean:</p>
<p><strong>注意:</strong>poserver.setSysPath设置为一个存在的目录路径</p>
</li>
</ol>
<pre><code class="language-java">        /**
       * 添加PageOffice的服务器端授权程序Servlet(必须)
       * @return
       */
        @Bean
    public ServletRegistrationBean servletRegistrationBean() {
                com.zhuozhengsoft.pageoffice.poserver.Server poserver = new com.zhuozhengsoft.pageoffice.poserver.Server();
                poserver.setSysPath("d:/lic/");//设置PageOffice注册成功后,license.lic文件存放的目录
                ServletRegistrationBean srb = new ServletRegistrationBean(poserver);
                srb.addUrlMappings("/poserver.zz");
                srb.addUrlMappings("/posetup.exe");
                srb.addUrlMappings("/pageoffice.js");
      return srb;
    }
</code></pre>
<ol start="3">
<li>在后台Controller中编写代码调用PageOffice</li>
</ol>
<pre><code class="language-java">@RequestMapping(value="/openWord")
public ModelAndView openWord(HttpServletRequest request){
    PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
    poCtrl1.setServerPage("poserver.zz"); //此行必须
    poCtrl1.setSaveFilePage("xxxController/savefile");//设置处理文件保存的Controller方法
    poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");//打开文件
    request.setAttribute("poCtrl1", poCtrl1.getHtmlCode("PageOfficeCtrl1"));
   
    ModelAndView mv = new ModelAndView("Word");
        return mv;
}
</code></pre>
<ol start="4">
<li>在视图html代码中获取第3步request对象中的poCtrl1,显示文档编辑区域</li>
</ol>
<pre><code class="language-html">        &lt;div style="height:700px;width:auto;"&gt;
      ${pdfCtrl1}
    &lt;/div&gt;
</code></pre><br><br>
来源:https://www.cnblogs.com/qingxue636/p/14872139.html
頁: [1]
查看完整版本: 国产麒麟操作系统调用PageOffice在线编辑保存WPS文档