文档章节

Java语言实现word转PDF(10分钟解决)

山里的红杏
 山里的红杏
发布于 09/25 17:24
字数 1021
阅读 15
收藏 15

前言:

经常做OA办公项目的同学一定和我一样被各种线上的office操作整疯了。基本上涉及到Java操作office的时候就会想到POI和openoffice.这两种方案都是需要找各种jar包,然后用里面繁杂的api。关键是做出来的文件格式有各种各样的问题,有时生成的文件打不开,有时文档格式混乱。搞了好几天的需求终于实现了,最后看到效果那一刻。。。唉呀妈呀 脑瓜疼 脑瓜疼

此时就需要另辟新径了,得找个更专业的解决线上office操作的插件——pageoffice。虽然pageoffice官网提供了大量功能,但是通过这篇博客可以让同学们省去学习时间,让你10分钟实现word转PDF的功能。并且最重要的是本篇博客后面会提供破解注册码

先看效果

点击另存为PDF按钮就会开始转PDF(如果不想点击按钮也可以放在其他事件中自动转PDF)

然后查看转换的PDF文件,格式是非常标准的,和本地word转出来的一模一样

部署步骤(只需5步)

1.官网http://www.zhuozhengsoft.com/dowm/下载集成文件,引入jar包,配置web.xml

去刚才下载的集成文件中找到lib,将里面的内容放在项目web-inf的lib中引入jar包,然后将web.xml的pageoffice配置引入到自己项目的wb.xml中

2.在父页面aaa.jsp(需要打开文档的页面)放一个a标签或者button

写button之前先引入pageoffice需要的js文件

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

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

然后添加a标签

<a href="javascript:POBrowser.openWindowModeless('word.jsp', 'width=1050px;height=900px;','id=er');">打开word文档</a>

3.在父页面同级目录下创建一个word.jsp文件

 
  1. <%@ page language="java"

  2. import="java.util.*, com.zhuozhengsoft.pageoffice.*"

  3. pageEncoding="utf-8"%>

  4. <%

  5. PageOfficeCtrl pocCtrl=new PageOfficeCtrl(request);

  6. //设置服务器页面

  7. pocCtrl.setServerPage(request.getContextPath()+"/poserver.zz");

  8. //添加自定义按钮

  9. pocCtrl.addCustomToolButton("保存", "Save()", 1);

  10. pocCtrl.addCustomToolButton("另存为PDF文件", "SaveAsPDF()", 1);

  11. //设置保存页面

  12. pocCtrl.setSaveFilePage("SaveFile.jsp");

  13. String fileName = "template.docx";

  14. String pdfName = fileName.substring(0, fileName.length() - 4) + ".pdf";

  15. //打开文件

  16. pocCtrl.webOpen(fileName, OpenModeType.docNormalEdit, "张佚名");

  17. %>

  18.  
  19. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

  20. <html>

  21. <head>

  22. <title>Word文件转换成PDF格式</title>

  23. <script type="text/javascript">

  24. //保存

  25. function Save() {

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

  27. }

  28.  
  29. //另存为PDF文件

  30. function SaveAsPDF() {

  31. document.getElementById("PageOfficeCtrl1").WebSaveAsPDF();

  32. document.getElementById("PageOfficeCtrl1").Alert("PDF文件已经保存到template.doc同级目录下。");

  33. <%--document.getElementById("div1").innerHTML = "<a href='OpenPDF.jsp?fileName=<%=pdfName %>'> 查看另存的 pdf 文件<a><br><br>";--%>

  34. document.getElementById("div1").innerHTML = "<a href='template.pdf'> 查看另存的 pdf 文件<a><br><br>";

  35. }

  36. </script>

  37.  
  38. </head>

  39. <body>

  40. <form id="form1">

  41. <div id="div1"></div>

  42. <div style="width: auto; height: 700px;">

  43. <%=pocCtrl.getHtmlCode("PageOfficeCtrl1")%>

  44. </div>

  45. </form>

  46. </body>

  47. </html>

  48.  

4.在父页面同级目录下创建一个SaveFile.jsp文件 

 
  1. <%@ page language="java"

  2. import="java.util.*,com.zhuozhengsoft.pageoffice.*"

  3. pageEncoding="utf-8"%>

  4. <%

  5. FileSaver fs = new FileSaver(request, response);

  6. //保存文件到本地磁盘

  7. fs.saveToFile(request.getSession().getServletContext().getRealPath(fs.getFileName()));

  8. fs.close();

  9.  
  10. %>

  11.  
  12.  

5.新建一个名为template.docx的word文件(如果新建的是doc文件就将第三步的String fileName = "template.docx"代码改为String fileName = "template.doc";)放在父页面同级目录下.然后启动项目直接访问aaa.jsp点击链接.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,填写注册码CA1XB-MF7Y-12ST-PSBP2就可以打开文档.

  注意:这些只是演示级代码,大家可以去pageoffice官网下载示例代码直接将samples4文件夹扔到Tomcat的webapps下,启动Tomcat,浏览器访问http://localhost:8080/Samples/index.html,查看示例中的下面一个链接,直接看samples4文件夹下SaveAsPDF文件夹里面的代码.

 

--------------------- 本文来自 it_zhang81 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/IT_zhang81/article/details/82773423?utm_source=copy

© 著作权归作者所有

共有 人打赏支持
山里的红杏
粉丝 10
博文 96
码字总数 61098
作品 0
私信 提问
Centos下安装类百度文库环境

使用php实现百度文库功能,网上搜索到的方案,实现doc转pdf,pdf转swf,然后显示出来。 这里简单的记录下,【doc转pdf,pdf转swf】两个功能的搭建流程。 doc转pdf 使用到下列程序(文件): Ap...

DragonFK
2013/02/20
0
1
JAVA强制删除文件

JAVA用jacob把word转pdf之后,确定这个pdf文件不再使用之后,如何进行强制删除。一般file.delete()的删除不了,因为显示的该文件还被JAVA进程占用,求大神指导如何强制删除...

逝风123
2013/10/25
2.7K
6
如何用纯java代码实现word转pdf??

最近在做一个项目,其中需要实现word转pdf,因为服务器不按照office,所以只能使用纯java方法,请教一下如何实现。。。。

st1122_xx
2015/06/01
8.5K
6
java使用jacob能否实现给pdf加密??如果不能,还有什么其它推荐方法??

开发语言:java 开发功能:使用jacob实现将系统数据填入rtf/word格式模板中,并转换为pdf输出 开发进度:已用dispatch实现上述功能,但在转换为pdf过程中,不知道如何为pdf加密。 请教大牛,...

st1122_xx
2015/05/28
690
2
Aspose.Pdf for Java 9.0.0 发布

Aspose.Pdf for Java 9.0.0 发布,此版本更新内容如下: The maximum number of columns in a table has been increased to 512 Additional classes and methods were ported from Aspose.Pd......

oschina
2014/04/16
617
0

没有更多内容

加载失败,请刷新页面

加载更多

学习心得《稻盛和夫经营学》的读后感2300字

学习心得《稻盛和夫经营学》的读后感2300字: 作者:张宪军;稻盛和夫信奉明朝王阳明的一句话:良知没处,万法难度。人们把它理解为管理者要有在纯正心态下要有好的做事方法,不然是很难成功...

原创小博客
15分钟前
0
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
37分钟前
1
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
1
0
HashTable和Vector为什么逐渐被废弃

HashTable,不允许键值为null,还一个就是put方法使用sychronized方法进行线程同步,单线程无需同步,多线程可用concurren包的类型。 如编程思想里面说的作为工具类,封闭性做的不好没有一个...

noob_chr
昨天
1
0
Win10 下安装Win7双系统

很多人买了预装64位Win8/8.1的电脑后想重装(或者再安装一个)Win7系统,但是折腾半天发现以前的方法根本不奏效。这是因为预装Win8/8.1的电脑统一采用了UEFI+GPT引导模式,传统的BIOS(Legacy...

yaly
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部