最近需要实现在java语言Word文档转成PDF文档的功能,做了一下调研,最后使用aspose-words实现了该功能。

注意,aspose-words 为商业软件,本文仅是使用方法的demo,使用的 jar包 aspose-words-15.8.jar 和 授权文件license.xml 均来源于网络,请勿在商业环境使用。

本文示例代码和jar下载:https://download.csdn.net/download/u012775558/48709768?spm=1003.2166.3001.6637.1

实现转换需要如下3个文件

  1. license.xml 授权文件
<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>
  1. aspose-words-15.8.jar
  2. java工具类
package org.example;import com.aspose.words.*;import java.io.*;
import java.util.HashMap;
import java.util.Map;/*** word转pdf*** @author Juveniless* @create 2021-10-12 下午 02:18**/
public class WordToPdfUtil {static Map<String, String> fontsMapping = new HashMap<>();static {try {InputStream is = WordToPdfUtil.class.getClassLoader().getResourceAsStream("license.xml");License license = new License();license.setLicense(is);} catch (Exception e) {e.printStackTrace();System.out.println("授权文件[license.xml]加载失败!");}}/*** 字体名称映射* Windows 中文字体与英文名称对照表 参考* http://www.360doc.com/content/14/0520/09/8463843_379246571.shtml*/static {fontsMapping.put("黑体", "SimHei");fontsMapping.put("宋体", "SimSun");fontsMapping.put("楷体_GB2312", "KaiTi_GB2312");fontsMapping.put("仿宋_GB2312", "FangSong_GB2312");fontsMapping.put("新宋体", "NSimSun");fontsMapping.put("仿宋", "FangSong");fontsMapping.put("楷体", "KaiTi");fontsMapping.put("微软正黑", "Microsoft JhengHei");fontsMapping.put("微软雅黑", "Microsoft YaHei");fontsMapping.put("细明体", "MingLiU");fontsMapping.put("标楷体", "DFKai-SB");fontsMapping.put("新细明体", "PMingLiU");fontsMapping.put("华文宋体", "STSong");fontsMapping.put("华文中宋", "STZhongsong");fontsMapping.put("华文仿宋", "STFangsong");fontsMapping.put("华文彩云", "STCaiyun");fontsMapping.put("华文琥珀", "STHupo");fontsMapping.put("华文隶书", "STLiti");fontsMapping.put("华文行楷", "STXingkai");fontsMapping.put("华文新魏", "STXinwei");fontsMapping.put("华文细黑", "STXihei");fontsMapping.put("华文楷体", "STKaiti");fontsMapping.put("方正舒体", "FZShuTi");fontsMapping.put("方正姚体", "FZYaoti");fontsMapping.put("幼圆", "YouYuan");fontsMapping.put("隶书", "LiSu");}public static void execute(String wordPath, String pdfPath) {File file = new File(pdfPath);FileOutputStream os = null;try {os = new FileOutputStream(file);Document doc = new Document(wordPath);// 设置字体for (Run run : (Iterable<Run>) doc.getChildNodes(NodeType.RUN, true)) {Font font = run.getFont();try {String newFontName = fontsMapping.get(font.getName());if (newFontName != null) {run.getFont().setName(newFontName);}} catch (Exception e) {}}doc.save(os, SaveFormat.PDF);} catch (FileNotFoundException e) {e.printStackTrace();System.out.println("文件不存在");} catch (Exception e) {e.printStackTrace();} finally {if (os != null) {try {os.close();} catch (IOException e) {}System.out.println("文件格式转换完成");}}}public static void main(String[] args) {String wordPath = "D:\\temp\\急性药物过敏性间质性肾炎临床路径(2016年版).docx";String pdfPath = "D:\\temp\\急性药物过敏性间质性肾炎临床路径(2016年版).pdf";WordToPdfUtil.execute(wordPath, pdfPath);}}

项目结构如下:

转换效果如下:

java实现Word文档转换PDF文档相关推荐

  1. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  2. Office2007如何将Word文档转换PDF文档

    今天有需求将Word文档转换PDF文档,而公司安装的Office 2007自带没有另存PDF文档功能,所以我们要先给Office 2007 安装一个加载项,就能导出文件并将其保存为 PDF 或 XPS ...

  3. java实现word文档转换pdf文档并且添加水印功能使用插件Aspose.Words

    前段时间,项目需要自动生成word文档,用WordFreeMarker生成word文档后,又要求生成的文档能在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研究了一下. 将word文档转 ...

  4. java调用libreoffice_JAVA实现LibreOffice转换PDF文档

    首先,安装LibreOffice服务 使用.LibreOfficeAndJodconverter.java package com.jalor.LibreOffice; import java.io. ...

  5. java : word,excel,img,ppt各种文档转换pdf格式以流方式

    前提: 面对各种文件转换pdf格式,我下面写的都是一些方法,其中每个方法都以流的方式进行参数的传递. 通过猿友的帮忙,修改了部分jar包,解决excel转换pdf导致的水印问题~ 源码链接:https ...

  6. java 预览word文档_Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  7. Word文档转换PDF格式常见转换技巧汇总

    时下,随着PDF文件格式的优点爆出,PDF文件已成为出版业的新宠.不过大部分工作族仍习惯使用Word文档编辑,而不适应PDF文件编辑,但在传输上又造成了一定的麻烦,这就有了"转换" ...

  8. java零碎要点010---Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  9. Python 技术篇-利用pdfkit库实现html格式文件转换PDF文档实例演示

    准备: 首先需要安装 pdfkit 库,使用 pip install pdfkit 命令就好了. 还需要安装 wkhtmltopdf 工具,本质就是利用这个工具来进行转换,pdfkit 库就是作为接口 ...

最新文章

  1. 在php代码中加视频,php – 如何在laravel代码中嵌入视频
  2. 导入json数据到Elasticsearch(bulk方法)
  3. 第一章:1.1.3 典型信号
  4. python库整理:networkx 包
  5. boost源码剖析之:boost::multi_array
  6. context存放内容_Go语言爱好者周刊:第 58 期—关于 context
  7. 在Java中的foreach循环中调用remove
  8. Linux RTC驱动模型分析之rtc-sysfs.c
  9. C++中编译速度与平时代码规范
  10. STM32串口通讯——中断方式
  11. 基于python的大数据分析基础及实战pdf下载_Cloudera Hadoop大数据平台实战指南 PDF 下载...
  12. 10个不错的编程等宽字体
  13. Linux下安装VNC远程控制软件
  14. 使用Laravel和Vue.js2.5进行服务器端渲染
  15. 市面上最流行的九大现场总线
  16. unity3D制作拼图游戏
  17. 中南大学计算机学院王瑞,中南大学优秀毕业生.xls
  18. Python开发高频英语单词700+,熟悉后英文障碍又少了
  19. This is a CONNECT tunnel, through which encrypted HTTPS traffic flows.
  20. Camera ITS当中的test_lens_shading_and_color_uniformity测试

热门文章

  1. svn服务端删除版本库_svn历史版本删除(为svn库瘦身)
  2. spring和servlet之间得关系
  3. Python爬虫---爬取数据(上)
  4. Kubernetes资源调度之污点与Pod容忍度
  5. ubuntu 常用命令大全(转)
  6. 计算机实验word,实验六计算机基础——word段落设置
  7. 转载:Openssl生成rsa和椭圆曲线加密公钥密钥创建根ca签名https服务器证书签名...
  8. 悟空活动中台 - 基于 WebP 的图片高性能加载方案
  9. 关于NSDateFormatter年份计算超前问题
  10. OpenGL 游戏开发: 熟悉练习【《OpenGL超级宝典》第二章】