Java转换Word文件到PDF文件

使用Docx4j将Word文件转换为PDF文件:

public static void convertDocxToPDF(String docxFilePath, String pdfPath) throws Exception {
        OutputStream os = null;
        try {
            // 加载文件
            File docx = new File(docxFilePath);
            InputStream is = new FileInputStream(docx);
            WordprocessingMLPackage mlPackage = WordprocessingMLPackage.load(is);
            // 字体转换
            Mapper fontMapper = new IdentityPlusMapper();
            fontMapper.put("华文行楷", PhysicalFonts.get("STXingkai"));
            fontMapper.put("华文仿宋", PhysicalFonts.get("STFangsong"));
            fontMapper.put("华文宋体", PhysicalFonts.get("STSong"));
            fontMapper.put("华文中宋", PhysicalFonts.get("STZhongsong"));
            fontMapper.put("隶书", PhysicalFonts.get("LiSu"));
            fontMapper.put("宋体", PhysicalFonts.get("SimSun"));
            fontMapper.put("微软雅黑", PhysicalFonts.get("Microsoft Yahei"));
            fontMapper.put("黑体", PhysicalFonts.get("SimHei"));
            fontMapper.put("楷体", PhysicalFonts.get("KaiTi"));
            fontMapper.put("新宋体", PhysicalFonts.get("NSimSun"));
            fontMapper.put("宋体扩展", PhysicalFonts.get("simsun-extB"));
            fontMapper.put("仿宋", PhysicalFonts.get("FangSong"));
            fontMapper.put("仿宋_GB2312", PhysicalFonts.get("FangSong_GB2312"));
            fontMapper.put("幼圆", PhysicalFonts.get("YouYuan"));
            mlPackage.setFontMapper(fontMapper);
            //
            os = new FileOutputStream(pdfPath);
            FOSettings foSettings = Docx4J.createFOSettings();
            foSettings.setWmlPackage(mlPackage);
            Docx4J.toFO(foSettings, os, Docx4J.FLAG_EXPORT_PREFER_XSL);
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            IOUtils.closeQuietly(os);
        }
    }

官网地址:https://www.docx4java.org/forums/

支持Word、Excel、PPT:

转换Word为PDF,依赖于Plutext,官网地址:http://converter-eval.plutext.com/

Plutext为商业软件包,提供180天试用。

此外可以使用FO,该方式免费。

webapp.docx4java.org/OnlineDemo/docx_to_pdf.html?_ga=2.226968541.1700223194.1521458163-1699339587.1517224689

原文地址:https://www.cnblogs.com/mahongbiao/p/8604272.html

时间: 2024-10-24 23:02:22

Java转换Word文件到PDF文件的相关文章

如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件

1. 描述 PDF 文件是一种便携文件格式,是由Adobe公司所开发的独特的跨平台文件格式.PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符.颜色以及图象.可移植文档格式,也称为"便携文档格式",是一种电子文件格式.这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的.这一特点使它成为在Internet上进行电子文

libreoffice转换文件为pdf文件乱码问题解决办法

最近系统需要一个office文件预览功能 解决方案为使用libreoffice将office文件转换为pdf文件,然后使用swftools将pdf文件转换为swf文件 最后在前台使用flexpaper浏览swf文件,即可实现预览 环境搭建完成,转换也没有问题,但是预览效果看到所有中文全部为乱码 下载转换后的pdf文件也是乱码,由此可见时libreoffice转换这一步出现了问题 服务器转换文件乱码主要是由于没有中文字体导致的,我在ubuntu desktop系统下使用libreoffice打开o

java将doc文件转换为pdf文件的三种方法

http://feifei.im/archives/93 —————————————————————————————————————————————— 项目要用到doc转pdf的功能,一番google之后总结出了三种方法(免费方案),于是一一试了一下,做个总结记录,下次要用直接查,省的忘了…… 方法1.poi读取doc + itext生成pdf (实现最方便,效果最差,跨平台) 方法2.jodconverter + openOffice (一般格式实现效果还行,复杂格式容易有错位,跨平台) 方法

Java将Excel导出成pdf文件

首先下载一个jar包,需要用到这个jar包,这里贴出下载的方法,官网上可以找到. 首先,在pom.xml文件中配置Maven仓库路径. <repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>

Java在已存在的pdf文件中生成文字和图片--基础

自我总结,有什么不足之处请告知,感激不尽!下一次总结pdf模板映射生成报表(应对多变的pdf报表需求,数据提供和报表生成解耦). 目的:在给定的pdf模板上生成报表,就需要知道最基本的操作:文字添加,图片添加. 原因:pdf生成中,最常见的操作就是生成文字,生成图片,所以本次和大家一块来学习一下文字和图片的生成. 准备工作: 1. 引入jar: 在pom.xml中引入itextpdf包语句,在链接随便选一个版本(我的是5.20):http://www.mvnrepository.com/arti

PDF转换器之怎样给PDF文件添加水印?

PDF添加水印的方法:PDF添加水印的方法有哪些?大家都知道想要给PDF文件添加水印不是一件简单的事情,没有找到好的方法只会降低工作的效率,相信很多小伙伴也在找适合的方法,今天就来给大家分享这个方法,一起来学习一下吧.借助专业的PDF添加水印的软件:PDF转换器可以轻松的给PDF文件添加水印哦,下面就来给大家介绍一下如何通过迅捷PDF转换器给PDF文件添加水印.一.打开软件,软件打开之后就可以看到[PDF的其他操作]这一个大的功能板块,然后我们可以选择下面的[PDF的添加水印]然后点击:二.我们

java从远程服务器获取PDF文件并后台打印(使用pdfFox)

一.java原生方式打印PDF文件 正反面都打印,还未研究出只打印单面的方法,待解决 public static void printFile(String path) throws Exception { File file = new File(path); File[] fies=file.listFiles(); for(File f:fies){ System.out.println("file "+f.getName()); String fileExt=f.getName

在.net Core 使用PDF模板文件生成PDF文件,代替WEB打印控件!

这几天找WEB打印控件,要么收费的,要么免费的只能在IE里用! 我只想简单的打个标签纸!百度2天,看到一老兄说可以用PDF,然后又开始百度..找到了一篇文章 http://www.jianshu.com/p/d518d0988621    本文代码全部摘抄至这篇文章,发文只为记录! 不同的是我导入的库是iTextSharp.LGPLv2.Core.Fix 开始 一.先用word制作好模板文件,标签打印的话注意页边距,然后另存为PDF格式文件 二.然后下载adobe acrobat pro,创建时

怎么修改PDF格式文件,PDF文件字体颜色怎么修改!

想必大家已经接触多PDF格式文件了吧,同样也知道修改PDF文件需要使用到专业的PDF编辑器,但是大家是否知道PDF编辑器的一些小技巧呢,比如如何用PDF编辑器修改PDF文件的文字颜色?这些都是非常简单的,接下来就一起来学习一下吧! 下面就来一起看看如何使用迅捷PDF编辑器来修改PDF中的文字吧. 1.网上搜索,找到相关资源下载迅捷pdf编辑器,安装后打开至主界面. 2.通过点击栏目上方工具栏中的"文件-打开"打开需要编辑的PDF文件,这样就可以直接打开PDF文件了,是不是很方便,既能查