JAVA实现Word转Pdf文件
本文使用aspose实现将word完美转成pdf文件。
1. 下载aspose.words破解版
Aspose.Words是一款先进的类库,通过它可以直接在各个应用程序中执行各种文档处理任务。Aspose.Words支持DOC,OOXML,RTF,HTML,OpenDocument, PDF, XPS, EPUB和其他格式。使用Aspose.Words,可以生成,更改,转换,渲染和打印文档而不使用Microsoft Word。
但是Aspose.Words使用是收费,而且它还有水印、页数的限制,所以我们使用破解版(嘻嘻)。完美解决以上问题,有兴趣的朋友可以去看破解教程,自己破解,没兴趣的可以直接下载下面的jar包。
链接:https://pan.baidu.com/s/1sigqWqBjfHrxbpzOcUOERA?pwd=THJL
提取码:THJL
下载好jar包后将其放入maven本地仓库,便于后期在项目pom文件中引用,前提本地已有maven环境。在cmd中输入以下命令:
mvn install:install-file -DgroupId=com.aspose -DartifactId=aspose-words -Dversion=15.8.0 -Dpackaging=jar -Dfile=D:\aspose-words-15.8.0-jdk16.jar
2.进一步破解
单纯使用jar包还是不行,需要在项目resources下面新建一个license.xml文件。在后面使用时引用该文件,即可去掉水印,以及页数限制。
<?xml version="1.0" encoding="UTF-8" ?>
<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>
3.具体使用方法
新建一个Word转Pdf的工具类
import com.aspose.words.Document;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* @author: YSL
* @date: 2022/8/1 16:29
*
*
* word转pdf工具类
*/
public class WordToPdfAsposeUtil {
private static final Logger logger = LoggerFactory.getLogger(WordToPdfAsposeUtil.class);
/**
* 获取aspose证书
* @auther: YSL
* @date: 2022/8/2 12:10
* @return boolean
*/
private static boolean getLicense() {
boolean result = false;
InputStream is = null;
try {
Resource resource = new ClassPathResource("license.xml");
is = resource.getInputStream();
License aposeLic = new License();
aposeLic.setLicense(is);
result = true;
} catch (Exception e) {
e.printStackTrace();
}finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
/**
* word转pdf静态方法
* @auther: YSL
* @date: 2022/8/2 12:08
* @param inPath word文件全路径含文件名
* @param outPath pdf输出全路径含文件名
* @return boolean
*/
public static boolean docToPdf(String inPath, String outPath) {
// 验证License 若不验证则转化出的pdf文档会有水印产生
if (!getLicense()) {
return false;
}
FileOutputStream os = null;
try {
long old = System.currentTimeMillis();
// 新建一个空白pdf文档
File file = new File(outPath);
os = new FileOutputStream(file);
// inPath是将要被转化的word文档
Document doc = new Document(inPath);
// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,EPUB, XPS, SWF 相互转换
doc.save(os, SaveFormat.PDF);
long now = System.currentTimeMillis();
// 转化用时
logger.info("word转换pdf成功,共耗时:" + ((now - old) / 1000.0) + "秒");
} catch (Exception e) {
logger.info("word转pdf失败",e);
return false;
}finally {
if (os != null) {
try {
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return true;
}
}
然后调用docToPdf()方法即可。10.5MB的Word转换Pdf平均耗时6秒,生成的pdf大小为2.22MB。
4.结束
生活如此美好,方法备份就好 -,如果公司项目,请支持正版Aspose。