word转pdf的几种方法
word转pdf的几种方法
需求是实现将word转换成pdf在线预览, 试了几种方法发现样式效果最好的是aspose-words
,但是需要破解, 附带了激活方式
openOffice 与 libreOffice
两款都是运行在服务器上面的office处理软件, 通过命令行的方式去执行转换命令
- openOffice下载地址
- libreOffice下载地址
下载安装好之后需要在代码中引入jodconverter相关jar包依赖(jodconverter.zip解压后lib下的都需要引入)
相关软件及jar下载链接:https://pan.baidu.com/s/1u0U5jYYAjWRYO7mL5ilD8Q 提取码:8888
// openOffice 和 libreOffice 差不多除了命令不一样 // 1.执行系统命令启动openoffice线程 // 2.连接openoffice服务连接 // 3.执行转换// window 使用 调用openoffice服务线程 String command = "C:/Program Files (x86)/OpenOffice 4/program/soffice-headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\""; // Linux使用 // String command = "/opt/openoffice4/program/soffice -headless -accept=\"socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard\""; Process p = Runtime.getRuntime().exec(command);// 连接openoffice服务 OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100); connection.connect();// 转换word到pdf DocumentConverter converter = new OpenOfficeDocumentConverter(connection); converter.convert(new File("/temp/1.doc"), new File("/temp/1.pdf"));connection.disconnect(); p.destroy();
- 如果出现中文乱码问题, 确定一下服务器上缺不缺中文字体
ps: 试了大部分的word都能转换pdf, 有一些样式复杂的会渲染不出来, 直接把word源码生成pdf
spire.doc.free
免费版的有页数限制, 我的场景不会有多页的就直接用的免费版本
效果可以参照
https://smallpdf.com/cn/word-to-pdf
,https://www.freepdfconvert.com/zh-cn/word-to-pdf
这些在线转换网站,我试了生成的效果和这些网站的一样.<!-- spire.doc.free 相关依赖 --> <dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free</artifactId><version>3.9.0</version> </dependency><repositories><repository><id>com.e-iceblue</id><url>http://repo.e-iceblue.cn/repository/maven-public/</url></repository> </repositories>
代码相当简单…
import com.spire.doc.*;public class WordtoPDF {public static void main(String[] args) {// 加载word示例文档Document document = new Document();document.loadFromFile("D:\\2.doc");// 保存结果文件document.saveToFile("D:\\3.pdf");} }
ps: 我生成的最后换行不一致, 所以没选用这个
aspose-words(推荐)
效果可以参照迅捷pdf在线转换器
https://app.xunjiepdf.com/pdf2word/
需要引入
aspose-words-15.8.0-jdk16.jar
到项目中链接:https://pan.baidu.com/s/1q06E0wK13dC2ejDbDtdpZQ
提取码:8888<!-- 下载后放项目lib下通过system引用 --> <dependency><groupId>com.aspose</groupId><artifactId>aspose-words</artifactId><version>15.8.0</version><scope>system</scope><systemPath>${project.basedir}/lib/aspose-words-15.8.0-jdk16.jar</systemPath> </dependency>
核心代码
import java.io.File; import java.io.FileOutputStream; import java.io.InputStream;import com.aspose.words.Document; import com.aspose.words.License; import com.aspose.words.SaveFormat;public class WordPdfUtil {private static boolean license = false;static {try {// license.xml放在src/main/resources文件夹下InputStream is = WordPdfUtil.class.getClassLoader().getResourceAsStream("license.xml");License aposeLic = new License();aposeLic.setLicense(is);license = true;} catch (Exception e) {license = false;e.printStackTrace();}}public static void doc2pdf(String wordPath, String pdfPath) {// 验证License 若不验证则转化出的pdf文档会有水印产生if (!license) {System.out.println("License验证不通过...");return;}try {File file = new File(pdfPath);FileOutputStream os = new FileOutputStream(file);Document doc = new Document(wordPath);// 支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换doc.save(os, SaveFormat.PDF);os.close();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {doc2pdf("D:\\3.doc","D:\\5.pdf");} }
在src/main/resources文件夹下创建license.xml填充下面内容激活
<?xml version="1.0" encoding="UTF-8" ?> <License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Words for Java</Product></Products><EditionType>Enterprise</EditionType><SubscriptionExpiry>20991231</SubscriptionExpiry><LicenseExpiry>20991231</LicenseExpiry><SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber></Data> <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature> </License>
file-online-preview
github上面找到的一个开源项目, 活跃度比较高也记录一下. 目前试了效果没有
aspose-words
好用, 底层是集成的LibreOffice
.项目地址:
https://github.com/kekingcn/kkFileView
支持的类型比较多,后续如果有需求,方便二次开发
word转pdf的几种方法相关推荐
- java word转pdf,docx4j转pdf,docx4j导出pdf乱码,docx4j导出pdf丢失插画和图片,aspose将word转pdf 一共两种方法
前言:一共有docx4j转pdf,aspose转pdf两种方式,不需要设置模板!!! java转pdf目前本人使用有两种方法,下面是方法代码 ps:因为本人是云桌面开发,所以只作截图,具体代码需要自己 ...
- Java语言中抽取word、pdf的四种方法
1.用jacob. 其实jacob是一个bridage,连接java和com或者win32函数的一个中间件,jacob并不能直接抽取word,excel等文件,需要自己写dll哦,不过已经有为你写好的 ...
- java生成word和pdf的几种方法的优缺点对比
JAVA生成word优缺点对比 所用技术 优点 缺点 Jacob 功能强大 代码量大,设置样式繁琐:需要windows平台支持,无法跨平台 Apache POI 读写excel功能强大.操作简单 一般 ...
- PPT转成Word文档的四种方法
注: 实际使用中,方法四比较好使. 如果想要提取图片,可以先转换成pdf,再转换成word. 方法一:利用"大纲"视图 打开PPT演示文稿,单击"大纲&quo ...
- html在电脑里怎么打开pdf文件,电脑上的PDF文档怎么打开?打开PDF的5种方法
原标题:电脑上的PDF文档怎么打开?打开PDF的5种方法 目前常用的办公文档中PDF因其格式的稳定性和兼容性都较好,而被越来越多的人使用.那么PDF文档应该如何打开呢?有哪些常用的PDF文件的打开方式 ...
- python处理word或者pdf文件_利用python程序生成word和PDF文档的方法
一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...
- C#实现将excel转换成pdf的三种方法
文章目录 1.使用免费版的spire 2.使用Microsoft.Office.Interop.Excel 3.使用Aspose.Cells 本人经过一上午的搜索,总结了C#将excel转pdf的三种 ...
- 将word文件转换成PDF的两种方法
由于工作需要,使用了两种方式实现了word文件转PDF的功能.以下的程序是我使用VB6编写,供大家参考. 第一种方法,使用PDFMAKERAPILib,使用这种方法,可以设置文件的安全性.这种方式是A ...
- 将ppt转换成pdf的三种方法分享
在我们工作中,总免不了将一些ppt幻灯片里的内容复制到pdf文档中,一些同仁遇到这种现象常常不知道如何下手,有的甚至直接将ppt文本内容复制到word文档中,然后保存成pdf格式,这样打开肯定会导致排 ...
最新文章
- 使用sigaction处理内核信号
- 6 款 Java 8 自带工具,轻松分析定位 JVM 问题!
- rsync 更改配置后, 无需手动重启
- 【剑指offer】找出数组中出现一次的两个数
- ssacanf\Sprintf格式化字符串
- OPENSSL X509证书验证
- 工作95视频上传逻辑
- phpcmsV9 自定义分页函数与调用 - 不影响后台SQL分页
- 程序员如何处理被 “吃” 掉的异常?
- SQL优化的一些总结
- redis LRU和LFU
- Django3.0入门教程【四】:Django常用命令
- Moya 设置超时时间和请求头
- 华为开放亚太首个OpenDaylight实验室――被纳入OpenDaylight官方Community Labs 获高度肯定
- 面对来势汹汹的AI大潮,你该如何应对?
- 将Maven仓库地址修改为阿里云的仓库地址
- win10的开机启动文件夹
- Golang 二叉树遍历
- 利用FaceBook实现第三方登陆(自定义登陆按钮,非官方按钮)并获取用户数据
- 艾伟_转载:如何开发绚丽、高效率的界面(Windows嵌入式系统)