本站消息

站长简介


前每日优鲜python全栈开发工程师,自媒体达人,逗比程序猿,钱少话少特宅,我的公众号:想吃麻辣香锅

  java大神匠心打造,零基础java开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2021-05(14)

2021-06(24)

JAVA word文件转pdf文件最有效的方式(破解,无水印)

发布于2021-06-08 14:12     阅读(455)     评论(0)     点赞(22)     收藏(2)


0

1

2

3

4

5

目录

0.准备工作:

1、Maven命令安装jar包到本地仓库

2、项目的pom文件中引入Aspose-Words依赖

3、license.xml文件内容(放在/src/main/resources目录下)

 4、WordPdfUtil.java——封装工具类

5、在linux环境下com.aspose.words将word文件转为pdf后乱码,window环境下不会

6、执行main方法,会生成无水印的pdf格式。

问题回顾:

问题1:这个问题不影响。

问题2:word中特殊字体在转成pdf时,会变成标准字体。


Aspose.Words是一个商业.NET类库,可以使得应用程序处理大量的文件任务。Aspose.Words支持Doc,Docx,RTF,HTML,OpenDocument,PDF,XPS,EPUB和其他格式。使用Aspose.Words可以在不使用Microsoft.Word的情况下生成、修改、转换和打印文档。

 

0.准备工作:

首先下载aspose-words-15.8.0-jdk16.jar包

http://pan.baidu.com/s/1nvbJwnv

如果下载链接取消,网上找此版本下载,或联系我免费提供。

1、Maven命令安装jar包到本地仓库

方法一:

直接放到本地maven中的路径下

方法二:安装命令(目前没试)

  1. mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar
  2. eg、mvn install:install-file -Dfile=C:\Users\admin\Desktop\doc\aspose-words-15.8.0-jdk16.jar -DgroupId=com.aspose -DartifactId=aspose-words -Dversion=15.8.0 -Dpackaging=jar

 

2、项目的pom文件中引入Aspose-Words依赖

  1. <dependency>
  2. <groupId>com.aspose</groupId>
  3. <artifactId>aspose-words</artifactId>
  4. <version>15.8.0</version>
  5. </dependency>

3、license.xml文件内容(放在/src/main/resources目录下)

  1. <License>
  2. <Data>
  3. <Products>
  4. <Product>Aspose.Total for Java</Product>
  5. <Product>Aspose.Words for Java</Product>
  6. </Products>
  7. <EditionType>Enterprise</EditionType>
  8. <SubscriptionExpiry>20991231</SubscriptionExpiry>
  9. <LicenseExpiry>20991231</LicenseExpiry>
  10. <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
  11. </Data>
  12. <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=
  13. </Signature>
  14. </License>

 4、WordPdfUtil.java——封装工具类

  1. package com.lynch.asap.config.util;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.InputStream;
  5. import com.aspose.words.Document;
  6. import com.aspose.words.License;
  7. import com.aspose.words.SaveFormat;
  8. /**
  9. * Word 转 Pdf 帮助类
  10. *
  11. * @author admin
  12. *
  13. */
  14. public class WordPdfUtil {
  15. private static boolean license = false;
  16. public static void main(String[] args) {
  17. doc2pdf("C:\\Users\\admin\\Desktop\\doc\\333.docx","C:\\Users\\admin\\Desktop\\doc\\ccc.pdf");
  18. }
  19. static {
  20. try {
  21. // license.xml放在src/main/resources文件夹下
  22. InputStream is = WordPdfUtil.class.getClassLoader().getResourceAsStream("license.xml");
  23. License aposeLic = new License();
  24. aposeLic.setLicense(is);
  25. license = true;
  26. } catch (Exception e) {
  27. license = false;
  28. System.out.println("License验证失败...");
  29. e.printStackTrace();
  30. }
  31. }
  32. /**
  33. * doc转pdf
  34. *
  35. * @param wordPath
  36. * @param pdfPath
  37. */
  38. public static void doc2pdf(String wordPath, String pdfPath) {
  39. // 验证License 若不验证则转化出的pdf文档会有水印产生
  40. if (!license) {
  41. System.out.println("License验证不通过...");
  42. return;
  43. }
  44. try {
  45. long old = System.currentTimeMillis();
  46. //新建一个pdf文档
  47. File file = new File(pdfPath);
  48. FileOutputStream os = new FileOutputStream(file);
  49. //Address是将要被转化的word文档
  50. Document doc = new Document(wordPath);
  51. //全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换
  52. doc.save(os, SaveFormat.PDF);
  53. long now = System.currentTimeMillis();
  54. os.close();
  55. //转化用时
  56. System.out.println("Word 转 Pdf 共耗时:" + ((now - old) / 1000.0) + "秒");
  57. } catch (Exception e) {
  58. System.out.println("Word 转 Pdf 失败...");
  59. e.printStackTrace();
  60. }
  61. }
  62. }

5、在linux环境下com.aspose.words将word文件转为pdf后乱码,window环境下不会

乱码原因是因为在linux系统下没有中文字体,所以转换的时候乱码,需要我们手动把window系统的字体文件拷贝到linux系统下的字体目录下。

找到window系统的字体目录位置,在C:\Windows\Fonts目录下,将Fonts文件夹打成压缩包Fonts.zip,扔到linux服务器的/usr/share/fonts/目录上。

在linux下安装解压zip的工具
yum install -y unzip zip

然后将该压缩包解压到字体目录中
cd /usr/share/fonts/
unzip Fonts.zip

安装字体命令
fc-cache -fv

然后重启一下服务器就好啦.

6、执行main方法,会生成无水印的pdf格式。

问题回顾:

问题1:这个问题不影响。

问题2:word中特殊字体在转成pdf时,会变成标准字体。

 

PS:

这是官方提供的aspose的最新包,可以使用,但此license不会生效,mark一下。

https://repository.aspose.com/

 

 

 

 

 

 

 

 

 

 

 


站长简介:前每日优鲜python全栈开发工程师,自媒体达人,逗比程序猿,钱少话少特宅,关注我,做朋友, 我们一起谈人生和理想吧!我的公众号:想吃麻辣香锅

关注公众号回复java,免费领取 免费领取java大神匠心打造,零基础java开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

关注公众号回复java充值+你的账号,免费为您充值1000积分

0

1

2

3

4



所属网站分类: 技术文章 > 博客

作者:快起来搬砖啦

链接:http://www.javaheidong.com/blog/article/219620/88e43edf8c4881443d8b/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

22 0
收藏该文
已收藏

评论内容:(最多支持255个字符)