用java将简单的word文档换成pdf文档

用java将简单的word文档换成pdf文档的方式很多,因为很多都没有实际测试过,所以这里就先泛泛的说一下

整体上来看分两种:

  1.纯java代码实现,有很多优秀的开源软件可以用,比如poi,itext,xdocreport,docx4j等等。主要缺点是只能处理简单的文档

  2.通过在操作系统安装转换软件,在java代码中调用软件命令来实现转换。常用的有OpenOffice,Pandoc,Jacob(限于Windows环境)等软件,优点是对于复杂的文档也能很好的处理。缺点是会麻烦一点,有的不能跨平台,速度上可能也会慢一点

这里主要说一下我用xdocreport将word文档转成pdf文档的代码,xdocreport其实是对poi和itext的封装,进一步简化代码。下面看我的maven依赖

        <!--Maven依赖,只多不少-->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>common-codec</artifactId>
            <version>1.5</version>
        </dependency>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>fr.opensagres.xdocreport</groupId>
            <artifactId>fr.opensagres.xdocreport.itext.extension</artifactId>
            <version>1.0.4</version>
        </dependency>
        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>2.1.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>ooxml-schemas</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>fr.opensagres.xdocreport</groupId>
            <artifactId>org.apache.poi.xwpf.converter.core</artifactId>
            <version>1.0.4</version>
        </dependency>
        <dependency>
            <groupId>fr.opensagres.xdocreport</groupId>
            <artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
            <version>1.0.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.stream</groupId>
            <artifactId>stax-api</artifactId>
            <version>1.0-2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>3.0.0</version>
        </dependency>    

maven依赖的版本很多都比较老了,但这不重要,能实现功能就是好的,要是换成其他更高的版本可能会报错,另外里面可能有个别依赖不是必须的,你有兴趣可以自己试一试。下面上代码

import org.apache.poi.xwpf.converter.pdf.PdfConverter;
import org.apache.poi.xwpf.converter.pdf.PdfOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.*;
import java.util.HashMap;
import java.util.Map;

public class WordToPDF {

    /**
     * 将word文档, 转换成pdf, 中间替换掉变量
     * @param source 源为word文档, 必须为docx文档
     * @param target 目标输出
     * @throws Exception
     */
    public static void wordConverterToPdf(InputStream source, OutputStream target) throws Exception {
        XWPFDocument doc = new XWPFDocument(source);
        PdfOptions options = null;//因为是简单处理,该参数就设置成了null,有需要的可以研究一下
        PdfConverter.getInstance().convert(doc, target, options);
    }

    //测试
    public static void main(String[] args) {
        String filepath = "F:\\temp\\test.docx";
        String outpath = "F:\\temp\\test.pdf";
        InputStream source;
        OutputStream target;
        try {
            source = new FileInputStream(filepath);
            target = new FileOutputStream(outpath);
            Map<String, String> params = new HashMap<String, String>();
            wordConverterToPdf(source, target);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

至此就算实现了将简单word文档转成pdf文档的功能。最后再说一下注意的地方,

1.如果你改变了maven依赖的版本可能会有报错,

2.注意word文档中汉字的字体

这里会显示你文档的汉字字体名称,其中有一些字体在转换的时候会消失,不能显示,就我知道有"宋体(正文)",注意它不同于“宋体”。

有错误欢迎指出,有好代码希望能分享一下。

附上参考资料地址:https://github.com/opensagres/xdocreport/wiki/DocxReportingJavaMainConverter

原文地址:https://www.cnblogs.com/coffee9527/p/9463742.html

时间: 2024-10-11 22:08:59

用java将简单的word文档换成pdf文档的相关文章

Word文档转换成PDF简单方法

Word文档怎么转换成PDF?当我们的Word文档中放置图片的时候是需要我们进行在线将其转换成PDF文档的,那么我们有什么样的方法进行转换的呢?下面小编就给大家简单介绍一下Word转PDF的方法. 步骤一:然后我们直接进入到在线网站的首页,通过在浏览器上进行搜索迅捷PDF在线转换器,然后直接进入即可: 步骤二:然后在导航栏中的文档转换中找到Word转PDF,找到之后就可以进行点击:步骤三:进入之后就可以进行页码的选择,将页码设置好之后就可以进行文件的选择了:步骤四:直接将Word文档拖动到界面中

如何将ppt文档转换成pdf

如何将ppt文档转换成pdfpdf转换成ppt,也许你很容易解决,但是反之把ppt转换成pdf你是否知道方法呢?曾经我很笨拙地将ppt里面的文字一段段地粘贴出来,整个过程花费了很多时间,但最后在校对的时候发现还是出现了错误,那个工作量就可想而知了...... 经过后面的不断测试,还是被我幸运的找到了一款非常好用的ppt转换成pdf转换器,其不但方便,还可以起到保护源文件的作用.无需其他高级程序,只需要一个软件就能实现. (一)准备: 1.迅捷ppt转pdf转换器正式版;       2.500张

C#实现文档转换成PDF

网上有很多将doc.ppt.xls等类型的文档转换成pdf的方法,目前了解到的有两大类: 1.使用虚拟打印机将doc.ppt.xls等类型的文档 2.使用OFFICE COM组件 我采用了第二种方法实现,初步测试通过,还没有放到服务器上进行批量实时转换的测试. 下面开始介绍详细步骤: 1.安装OFFICE 2007.我安装的是OFFICE 2007 Professional Plus版.安装后提示要激活,开始没有激活也能使用,只是每次一打开office软件就提示要激活,实在忍受不了,就下了一个激

如何把ppt文档转换成pdf

如何把ppt文档转换成pdf 如何把ppt转换成pdf?你是否会在制作ppt的时候想将其转换成PDF格式而上传至网络上与网友共享?使用迅捷ppt转换成pdf转换器就可以很轻松的解决这一问题. 具体操作过程如下: 1 首先手头要有一份ppt演示稿(文稿可以是单个或是多个).在在电脑上桌面上新建2个文件夹,一个取名为“ppt”,另一个命名为“pdf”; 2.双击开打ppt转pdf转换软件(这里以ppt转pdf为例).在“菜单栏”中选择“Office转pdf”; 3.点击添加文件将此“ppt”格式文件

[Swift通天遁地]七、数据与安全-(8)创建普通PDF文档和加密PDF文档

本文将演示使用开源类库实现创建普通PDF文档和加密PDF文档. 首先确保在项目中已经安装了所需的第三方库. 点击[Podfile],查看安装配置文件. 1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'PDFGenerator' 7 end 根据配置文件中的相关配置,安装第三方库. 在项目导航区,打开视

java调用com组件将office文件转换成pdf

在非常多企业级应用中都涉及到将office图片转换成pdf进行保存或者公布的场景,由于pdf格式的文档方便进行加密和权限控制(类似于百度文库).总结起来眼下将office文件转换 成pdf的方法主要有两种: 1.利用jcob调用ms office的com组件,将office文档转换成pdf. 2.利用jcob调用acrobat将office文档转换成pdf. 在实际使用中发现.因为office不同所以本的文件格式不一致,所以不论什么第三方的转化工具都不可能完美的兼容全部office版本号,最好的

教你如何将word转换成PDF文档使用

对于各种不同文档格式的转换对文字工作者来说可谓是"家常便饭",而最让人头疼的莫过于office文档与pdf文档之间的互相转换.有时候遇到需要文字编辑的就得转换成word文档,有时候要成稿传输了,又得转换成pdf格式,这来回之间的转换,如果没有一个好的转换器作为帮手,还真的是会让人抓狂. 今天小编和大家介绍一款小编平时用的转换器软件.除了将word转成pdf,更重要的是能够对一些常见类型的文档转换格式.像word.ppt.excel.pdf等都可以转为你需要的文档格式.另外还能对文档进行

ASP.NET将word文档转换成pdf的代码

一.添加引用 using Microsoft.Office.Interop.Word; 二.转换方法 1.方法 C# 代码   复制 /// <summary> /// 把Word文件转换成pdf文件 /// </summary> /// <param name="sourcePath">需要转换的文件路径和文件名称</param> /// <param name="targetPath">转换完成后的文件

如何将手机中Word文档转换成PDF

PDF文件不易被修改所以很多时候我们在编辑完Word文件后需要转换为PDF格式,同时PDF格式的文档便与储存,也便于在不同的设备上查阅,以前Word文档转换为PDF格式的文件需要在电脑上进行,现在手机上面也可以将Word文档转换为PDF格式的文档了,你知道怎么做吗? 手机上需要借助转换工具:迅捷PDF转换器,它是一款提供文件格式转换的办公应用.支持一键完成PDF文件与Office.HTML.TXT和图片文档之间的格式转换,轻巧简便,快速转换,每天转换文档数量100000+,是移动办公方面好用的文