最近项目有个需求需要将word转为pdf。
网络上有好多种方案:spire,aspose,jacob等,由于jacob需要在jdk添加dll文件,有点束缚,所以在这里就不讲这个方案了
一.spire.doc

1.引入jar包

        <dependencies><dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free</artifactId><version>3.9.0</version></dependency></dependencies><repositories><repository><id>com.e-iceblue</id><url>http://repo.e-iceblue.cn/repository/maven-public/</url></repository></repositories>

2.wordtopdfutil

    public class WordToPdfUtil2 {public static void word2pdf(String inPath, String outPath) throws Exception {Document document = new Document();document.loadFromFile(inPath);document.saveToFile(outPath, FileFormat.PDF);}public static void word2pdf(String inPath, OutputStream outputStream){Document document = new Document();document.loadFromFile(inPath);document.saveToStream(outputStream,FileFormat.PDF);}}

3.测试

  public static void main(String[] args) {//aspose//        String docPath = "C:\\Users\\linxishui\\Desktop\\test1.doc";//        String pdfPath = "C:\\Users\\linxishui\\Desktop\\test.pdf";//        WordToPdfUtil.doc2pdf(docPath,pdfPath);//spireString docPath2 = "C:\\Users\\linxishui\\Desktop\\test1.doc";String pdfPath2 = "C:\\Users\\linxishui\\Desktop\\test2.pdf";try {WordToPdfUtil2.word2pdf(docPath2,pdfPath2);} catch (Exception e) {e.printStackTrace();}}

4.效果
word:
pdf:

5.限制
此种方法为免费的,但是限制每次只能打印3页,超过三页后就不给打了,
免费的就是这样的啦,不然人家花钱版的怎么卖的出去嘞,价格6000/年起步,
我这个穷人家是买不起的啦,所以有了下面的一种方法

二.aspose

1.引入jar包

        <dependencies><dependency><groupId>com.aspose</groupId><artifactId>aspose-words</artifactId><version>18.6</version><classifier>jdk16</classifier></dependency></dependencies>

这里注意:这个jar包如果不是pj后的,而是直接从maven拉下来的话,
虽然没有了页数限制,但是页面顶端会有一行广告水印哦,我这里用的
是pj版本配合license验证使用的

2.wordtopdfutil

    public class WordToPdfUtil {public static boolean getLicense() {boolean result = false;try {InputStream is = Test.class.getClassLoader().getResourceAsStream("\\license.xml");License aposeLic = new License();aposeLic.setLicense(is);result = true;} catch (Exception e) {e.printStackTrace();}return result;}public static boolean doc2pdf(String inPath, String outPath) {if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生return false;}FileOutputStream os = null;try {long old = System.currentTimeMillis();File file = new File(outPath); // 新建一个空白pdf文档os = new FileOutputStream(file);Document doc = new Document(inPath); // Address是将要被转化的word文档doc.save(os, SaveFormat.PDF);// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,long now = System.currentTimeMillis();System.out.println("pdf转换成功,共耗时:" + ((now - old) / 1000.0) + "秒"); // 转化用时} catch (Exception e) {e.printStackTrace();return false;}finally {if (os != null) {try {os.flush();os.close();} catch (IOException e) {e.printStackTrace();}}}return true;}}

3.测试

  public static void main(String[] args) {public static void main(String[] args) {//asposeString docPath = "C:\\Users\\linxishui\\Desktop\\test1.doc";String pdfPath = "C:\\Users\\linxishui\\Desktop\\test.pdf";WordToPdfUtil.doc2pdf(docPath,pdfPath);//spire//        String docPath2 = "C:\\Users\\linxishui\\Desktop\\test1.doc";//        String pdfPath2 = "C:\\Users\\linxishui\\Desktop\\test2.pdf";//        try {//            WordToPdfUtil2.word2pdf(docPath2,pdfPath2);//        } catch (Exception e) {//            e.printStackTrace();//        }}

4.效果
word:
pdf:

5.限制
这种方法是我目前找到的最实惠好用的一种了,限制就是要找到pj包了,我找了好久,这里我就不传播了

总结:此两种方法都比较简单,好用,而且window,linux版本都适用,如果linux上转换有乱码的话,装一下windows字体就行了
这里推荐一篇装windows字体博客:https://blog.csdn.net/neulily2005/article/details/106003527

Java word(doc/docx)转pdf 无水印/免费相关推荐

  1. Word处理控件Aspose.Words功能演示:在 Java 中将 Word DOC/DOCX 转换为 PDF

    Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word. A ...

  2. Word处理控件Aspose.Words功能演示:使用 C++ 在 Word (DOC/DOCX) 中添加或删除水印

    Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word.此 ...

  3. php 读取并显示doc,PHP读取doc,docx,xls,pdf,txt内容

    我的一个客户有这样的需求:上传文件,可以是doc,docx,xls,pdf,txt格式,现需要用php读取这些文件的内容,然后计算文件里面字数. 1.PHP读取DOC格式的文件 首先介绍一下如何在wi ...

  4. java开发最新获取抖音无水印视频和背景音乐

    java版最新获取抖音无水印视频和背景音乐, 这个工具已经被我放到我的网站上做成了在线抖音无水印获取工具: 在线演示地址:http://www.yzcopen.com/video/dywsy 废话不多 ...

  5. 苹果5壁纸_iPhone12蓝色橙色壁纸图片下载_iPhone12蓝色橙色壁纸图片无水印免费分享 v1.0...

    iPhone12蓝色橙色壁纸图片无水印免费分享是小编为大家带的全网最新壁纸分享,这里的壁纸都是高清无码无水印,用户可以放心下载使用,而且除了蓝色橙色壁纸外,小编还为大家准备了其他的精美壁纸,快来下载使 ...

  6. java docx转pdf_java word/doc/docx文档转PDF 加水印

    本文实例讲述了java实现word文档转pdf并添加水印的方法.分享给大家供大家参考,具体如下: 前段时间,项目需要将上传的Word文档在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研 ...

  7. java使用freemark实现word(.doc/.docx)/pdf生成和导出(附源码和模板文件)

    freemark生成word/pdf 一. 背景 二.实现的技术选型以及遇到的坑 三.最终的效果 2.1 `.doc` word效果展示 2.1 `.docx` word效果展示 2.2 docx w ...

  8. java 接口文档的格式化_Java Word API - 读写转换处理DOC DOCX HTML PDF HTML格式

    Java Word 文档处理API 先进功能 执行邮件合并 使用邮件合并生成报表 插入格式户文本,段落,图像,表格以及其他内容到Word文档中 使用数据库的检索数据填充到Word文档中的表格 创建邮件 ...

  9. Java web/springboot上传word/doc/docx文档(含图片)与HTML富文本导入/导出互相转换解析!附项目源码

    测试效果 先看下效果 文档内容如下: 上传 上传docx文档 查看解析内容 <html><head><style>p{margin-top:0pt;margin-b ...

最新文章

  1. c语言程序设计A课程试,自学考试有关论文范文,与C语言程序设计A课程辅导相关硕士毕业论文范文...
  2. sizeof()浅解
  3. Java当中的HashSet
  4. 3.2)深度学习笔记:机器学习策略(2)
  5. spring 中构造Constructor、@Autowired、@PostConstruct、静态方法的执行顺序 (@PostConstruct 说明)
  6. auto形式(更多功能)类结构实现
  7. Ext中Grid重新load设置URL
  8. FFmpeg总结(六)AV系列结构体之AVPacket
  9. Blender 设置环境贴图(天空盒)
  10. 光学计算机的工作原理,使用光学计算机的人工智能超分辨率
  11. dell emc isilon环境 Windows共享文件下生成.snapshot无法删除
  12. 简简单单做股票读书笔记(1/8)
  13. 淘宝、美团、滴滴分别如何搭建大数据平台
  14. C#项目解决方案管理器中将*.Designer.cs文件放到*.cs文件下
  15. 使用Rust开发操作系统(UEFI基本介绍)
  16. 利用opencv棋盘格标定法对鱼眼图像校正分析
  17. 刷程序对车危害_汽车刷程序对车有什么影响
  18. 科目一常考知识点速记技巧汇总(2022全新版)
  19. 【限时删除】一个惊艳的神器,可全网爬取各种资源..........
  20. ppt中加入html,如何在ppt中插入html网页.ppt

热门文章

  1. nio学习之Selector选择器
  2. Java编程——判断奇偶数
  3. WPS Office 2007很不错啊
  4. Portscan一款局域网端口扫描器
  5. 微信小程序开发——第一个小程序
  6. java函数式编程的原理的理解
  7. iOS推送证书(开发环境)(生成环境)创建教程
  8. 华创期货:教您识别合法和非法期货区别曝光骗局远离亏损
  9. 10.js中的计时器
  10. 科猫网:20万元创业,15年后市值170亿,小熊电器的增长逻辑是什么|领军企业