word转pdf的java实现_java实现word转pdf

word转pdf的java实现_java实现word转pdf文章时间:2020-12-516:38:54解决问题:java实现word转pdf目前发现可用的实现方式有两种,一种是使用e-iceblue的免费版api,此方法最为简单但存在限制,导出页数不能超过三页。另一种是使用openoffice,但较上一种方法麻烦一些,需要安装openoffice的软件,但没有导出限制,请根据自身需求自行选用。方式一e-iceblue的免费版api官方文档https:…

大家好,又见面了,我是你们的朋友全栈君。

文章时间:2020-12-5 16:38:54

解决问题:java实现word转pdf

目前发现可用的实现方式有两种,一种是使用e-iceblue的免费版api,此方法最为简单但存在限制,导出页数不能超过三页。

另一种是使用openoffice,但较上一种方法麻烦一些,需要安装openoffice的软件,但没有导出限制,请根据自身需求自行选用。

方式一 e-iceblue的免费版api

官方文档https://www.e-iceblue.cn/spiredocforjavaconversion/java-convert-word-to-pdf.html

第一步 添加maven依赖及远程仓库

e-iceblue

spire.doc.free

3.9.0

com.e-iceblue

http://repo.e-iceblue.cn/repository/maven-public/

第二步 编写后台代码

参考代码如下

// 模板文件路径

String templateUrl = “C:\\Users\\dev\\Desktop\\template.docx”;

// word文件生成路径

String generateUrl =”C:\\Users\\dev\\Desktop\\generate.pdf”;

Document document = new Document();

document.loadFromFile(generateUrl);

//保存生成的pdf

document.saveToFile(generateUrl, FileFormat.PDF);

方式二 openoffice转换

官方文档:http://www.openoffice.org/why/index.html

openoffice安装教程:http://wiki.nooss.cn/archives/405.html

第一步 添加maven依赖

需注意:此处引用的版本为2.2.1版本,不支持.docx文件的转换,若需要转换.docx文件需2.2.2及以上版本,但maven库没有此版本需自行下载导入jar包

com.artofsolving

jodconverter

2.2.1

第二步 编写后台代码

// word文件路径

String sourceFile = “C:\\Users\\dev\\Desktop\\template.docx”;

// 生成的pdf路径

String destFile = “C:\\Users\\dev\\Desktop\\generate.pdf”;

try {

File inputFile = new File(sourceFile);

// 如果目标路径不存在, 则新建该路径

File outputFile = new File(destFile);

if (!outputFile.getParentFile().exists()) {

outputFile.getParentFile().mkdirs();

}

// 连接到运行在端口8100上的OpenOffice

OpenOfficeConnection connection = new SocketOpenOfficeConnection(

“127.0.0.1”, 8100);

connection.connect();

// 文件转换

DocumentConverter converter = new OpenOfficeDocumentConverter(

connection);

converter.convert(inputFile, outputFile);

// 关闭连接

connection.disconnect();

} catch (IOException e) {

e.printStackTrace();

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133424.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 接口测试-Mock测试方法

    接口测试-Mock测试方法一、关于Mock测试1、什么是Mock测试?Mock测试就是在测试过程中,对于某些不容易构造(如HttpServletRequest必须在Servlet容器中才能构造出来)或者不容易获取的比较复杂的对象(如JDBC中的ResultSet对象),用一个虚拟的对象(Mock对象)来创建以便测试的测试方法。2、为什么要进行Mock测试?Mock是为了解决不同的单元之…

  • undefined pthread_create_pthread_key_create

    undefined pthread_create_pthread_key_create#include#includeusingnamespacestd;HANDLEhMutex;DWORDWINAPIthreadFun(LPVOIDlpParamter){char*p=(char*)lpParamter; while(1){ WaitForSingleObject(hMutex,INFINITE)

  • 对比HTML和XML[通俗易懂]

    对比HTML和XML[通俗易懂]对比HTML和XML

  • war包解压后怎么重新打war包_war包和zip

    war包解压后怎么重新打war包_war包和zip$ClipboardContent$

  • getParameterValues 和 getParameter区别

    getParameterValues 和 getParameter区别一、getParameterValuesrequest.getParameterValues(Stringname)是获得如checkbox类(名字相同,但值有多个)的数据。接收数组变量,如checkobx类型二、getParameterrequest.getParameter(Stringname)是获得相应名的数据,如果有重复的名,则返回第一个的值….

  • kafka是什么?主要用在什么场景

    kafka是什么?主要用在什么场景1、kafka是什么?Kafka是由LinkedIn开发的一个分布式基于发布/订阅的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。2、产生背景Kafka是一个消息系统,用作LinkedIn的活动流(ActivityStream)和运营数据处理管道(Pipeline)的基础。活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。活动数据包括页…

    2022年10月13日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号