好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

使用Springboot实现word在线编辑保存

一、查看官网

http://HdhCmsTestzhuozhengsoft测试数据/

点击首页下载,进入页面:

最新得5.2,我们就下载5.2版本进行测试。

二、查看下载包

1.Samples5 为示例文件。放入tomcat中得webapps可以直接访问。

localhost:8080/Samples5/index.html

2.集成文件 里面有我们需要jar包

新建springboot项目以及简单测试这里就不多说了。

1、springboot 引入 pageoffice5.2.0.12.jar

2、springboot 引入thymleaf

?

1

2

3

4

< dependency >

      < groupId >org.springframework.boot</ groupId >

      < artifactId >spring-boot-starter-thymeleaf</ artifactId >

  </ dependency >

3、编写配置文件

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

/**

  * PageOffice 配置类

  */

@Configuration

public class PageOfficeConfig {

     @Value ( "${file.save.path}" )

     String poSysPath;

     /**

      * 添加PageOffice的服务器端授权程序Servlet(必须)

      * @return

      */

     @Bean

     public ServletRegistrationBean servletRegistrationBean() {

         com.zhuozhengsoft.pageoffice.poserver.Server poserver = new com.zhuozhengsoft.pageoffice.poserver.Server();

         //设置PageOffice注册成功后,license.lic文件存放的目录

         poserver.setSysPath(poSysPath);

         ServletRegistrationBean srb = new ServletRegistrationBean(poserver);

         srb.addUrlMappings( "/poserver.zz" );

         srb.addUrlMappings( "/posetup.exe" );

         srb.addUrlMappings( "/pageoffice.js" );

         srb.addUrlMappings( "/jquery.min.js" );

         srb.addUrlMappings( "/pobstyle.css" );

         srb.addUrlMappings( "/sealsetup.exe" );

         return srb;

     }

}

4、编写 index.html 和 word.html

4.1 index.html

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<!DOCTYPE html>

< html xmlns = "http://HdhCmsTestw3.org/1999/xhtml" xmlns:th = "http://HdhCmsTestthymeleaf.org" >

< head >

     < meta charset = "UTF-8" >

     < title >Title</ title >

     <!-- office插件js begin 必须引入-->

     < script type = "text/javascript" src = "/jquery.min.js" ></ script >

     < script type = "text/javascript" src = "/pageoffice.js" id = "po_js_main" ></ script >

     <!-- end -->

</ head >

< body >

< a href = "javascript:POBrowser.openWindowModeless('word','width=1200px;height=800px;');" >打开文件</ a >

</ body >

</ html >

4.2 word.html

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

**<!DOCTYPE html>

<html xmlns= "http://HdhCmsTestw3.org/1999/xhtml" xmlns:th= "http://HdhCmsTestthymeleaf.org" >

<head>

     <meta charset= "UTF-8" >

     <title>Title</title>

</head>

<body>

<input id= "Button1" type= "button" value= "隐藏/显示 标题栏"   onclick= "return Button1_onclick()" />

<input id= "Button2" type= "button" value= "隐藏/显示 菜单栏" onclick= "return Button2_onclick()" />

<input id= "Button3" type= "button" value= "隐藏/显示 自定义工具栏"   onclick= "return Button3_onclick()" />

<input id= "Button4" type= "button" value= "隐藏/显示 Office工具栏"   onclick= "return Button4_onclick()" />

<div style= "width:1000px;height:700px;" th:utext= "${pageoffice}" > </div>

<script type= "text/javascript" >

     function Save() {

         document.getElementById( "PageOfficeCtrl1" ).WebSave();

     }

     function PrintFile(){

         document.getElementById( "PageOfficeCtrl1" ).ShowDialog( 4 );

     }

     function IsFullScreen(){

         document.getElementById( "PageOfficeCtrl1" ).FullScreen = !document.getElementById( "PageOfficeCtrl1" ).FullScreen;

     }

     function CloseFile(){

         window.external.close();

     }

     function BeforeBrowserClosed(){

         if (document.getElementById( "PageOfficeCtrl1" ).IsDirty){

             if (confirm( "提示:文档已被修改,是否继续关闭放弃保存 ?" ))

             {

                 return   true ;

             } else {

                 return   false ;

             }

         }

     }

     // 隐藏/显示 标题栏

     function Button1_onclick() {

         var bVisible = document.getElementById( "PageOfficeCtrl1" ).Titlebar;

         document.getElementById( "PageOfficeCtrl1" ).Titlebar = !bVisible;

     }

     // 隐藏/显示 菜单栏

     function Button2_onclick() {

         var bVisible = document.getElementById( "PageOfficeCtrl1" ).Menubar;

         document.getElementById( "PageOfficeCtrl1" ).Menubar = !bVisible;

     }

 

     // 隐藏/显示 自定义工具栏

     function Button3_onclick() {

         var bVisible = document.getElementById( "PageOfficeCtrl1" ).CustomToolbar;

         document.getElementById( "PageOfficeCtrl1" ).CustomToolbar = !bVisible;

     }

     // 隐藏/显示 Office工具栏

     function Button4_onclick() {

         var bVisible = document.getElementById( "PageOfficeCtrl1" ).OfficeToolbars;

         document.getElementById( "PageOfficeCtrl1" ).OfficeToolbars = !bVisible;

     }

</script>

</body>

</html>**

5、编写PageOfficeController

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

/**

  * PageOffice Demo

  */

@Controller

@RequestMapping ( "/page" )

public class PageOfficeController {

     /**

      * 进入测试

      * @return

      */

     @RequestMapping (value= "/index" , method=RequestMethod.GET)

     public ModelAndView showIndex(){

         ModelAndView mv = new ModelAndView( "index" );

         return mv;

     }

     /**

      * office online打开

      * @param request

      * @param map

      * @return

      */

     @RequestMapping (value= "/word" , method=RequestMethod.GET)

     public ModelAndView showWord(HttpServletRequest request, Map<String,Object> map){

         //--- PageOffice的调用代码 开始 -----

         PageOfficeCtrl poCtrl= new PageOfficeCtrl(request);

         poCtrl.setServerPage( "/poserver.zz" ); //设置授权程序servlet

         poCtrl.addCustomToolButton( "保存" , "Save()" , 1 ); //添加自定义按钮

         poCtrl.addCustomToolButton( "打印" , "PrintFile()" , 6 );

         poCtrl.addCustomToolButton( "全屏/还原" , "IsFullScreen()" , 4 );

         poCtrl.addCustomToolButton( "关闭" , "CloseFile()" , 21 );

         poCtrl.setSaveFilePage( "/page/save" ); //设置保存的action

         poCtrl.webOpen( "D:\\page\\test.docx" , OpenModeType.docAdmin, "张三" );

         poCtrl.setCaption( "信息平台" );

         map.put( "pageoffice" ,poCtrl.getHtmlCode( "PageOfficeCtrl1" ));

         //--- PageOffice的调用代码 结束 -----

         ModelAndView mv = new ModelAndView( "word" );

         return mv;

     }

     /**

      * 保存

      * @param request

      * @param response

      */

     @RequestMapping ( "/save" )

     public void saveFile(HttpServletRequest request, HttpServletResponse response){

         FileSaver fs = new FileSaver(request, response);

         fs.saveToFile( "d:\\page\\" + fs.getFileName());

         fs.close();

     }

}

6.application.yml 配置

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

server:

   port: 8080

spring:

   datasource:

     driver- class -name: com.mysql.cj.jdbc.Driver

     url: jdbc:mysql: //localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC

     username: root

     password: finn123

   # thymeleaf页面模板配置

   thymeleaf:

     prefix: classpath:/templates/

     suffix: .html

   mvc:

     view:

       prefix: classpath:/templates/

       suffix: .html

   resources:

     static -locations: classpath:/templates/,classpath:/ static /

file:

   save:

     path: d:/page/

7.注意 项目结构

注意jquery.min.js 和 pageoffice.js文件地址

三、测试

输入网址

http://localhost:8080/page/index

打开文件,或让你先进行下载pageoffice。

注意事项

1.关闭浏览器进行安装

2.二要进行企业注册,随便填填

3.test.docx得文件需要填写些数据。空文档打不开!

四、gitee地址

https://gitee测试数据/finn_feng/finnPageOffice.git

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注的更多内容!

原文链接:https://blog.csdn.net/ITxiaofeixiang/article/details/119580150

查看更多关于使用Springboot实现word在线编辑保存的详细内容...

  阅读:16次