Java WORD转换PDF 并添加水印
直接上代码

实现功能
docx文档转换为PDF
转换之后排版不混乱
使用工具(Jar包)
aspose-words-15.8.0-jdk16.jar(用于PDF转换 )
链接:https://pan.baidu.com/s/1EVfVLsl0jOJzCkvbO1Szqw
提取码:dusq
环境
JDK1.8
代码

  private static boolean getLicense() {boolean result = false;try {InputStream is = PdfUtil.class.getClassLoader().getResourceAsStream("License.xml"); // license.xml应放在..\WebRoot\WEB-INF\classes路径下License aposeLic = new License();aposeLic.setLicense(is);result = true;} catch (Exception e) {e.printStackTrace();}return result;}/*** @param wordPath 需要被转换的word全路径带文件名* @param pdfPath  转换之后pdf的全路径带文件名*/public static void doc2pdf(String wordPath, String pdfPath) {if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生return;}try {long old = System.currentTimeMillis();File file = new File(pdfPath); //新建一个pdf文档FileOutputStream os = new FileOutputStream(file);Document doc = new Document(wordPath); //Address是将要被转化的word文档doc.save(os, com.aspose.words.SaveFormat.PDF);//全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换long now = System.currentTimeMillis();os.close();System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); //转化用时} catch (Exception e) {e.printStackTrace();}}public static boolean addPngWatermark(String InPdfFile, String outPdfFile , String textWatermark){try{PdfReader reader = new PdfReader(InPdfFile);//reader.unethicalreading = true;File file = new File(outPdfFile);if(!file.exists()){//先得到文件的上级目录,并创建上级目录,在创建文件file.getParentFile().mkdir();try {//创建文件file.createNewFile();} catch (IOException e) {e.printStackTrace();}}PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outPdfFile));//这里的字体设置比较关键,这个设置是支持中文的写法BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.EMBEDDED);// 使用系统字体int total = reader.getNumberOfPages();//文字的长度int l= textWatermark.length();int size=0;if(l<=6){size=22;}if(l>6 && l<=11){size=15;}if(l>11){size=10;}if(l>15){size=5;}Font f= new Font(base,size);Phrase p = new Phrase(textWatermark, f);// transparencyPdfGState gs1 = new PdfGState();// 设置水印透明度gs1.setFillOpacity(0.1f);PdfContentByte over;com.itextpdf.text.Rectangle pagesize;for (int i = 1; i <=total; i++) {pagesize = reader.getPageSizeWithRotation(i);over = stamper.getOverContent(i);over.saveState();over.setGState(gs1);over.setTextMatrix(30, 30);over.setColorFill(BaseColor.GRAY);for (int y = 0; y < 10; y++) {for (int x = 0; x < 8; x++) {// 水印文字成45度角倾斜ColumnText.showTextAligned(over, Element.ALIGN_CENTER, p, 80 + 140 * x, 158 * y, -45);}}over.restoreState();}stamper.close();reader.close();return true;}catch (Exception e){e.printStackTrace();return false;}}static void word(HttpServletRequest request){String basePath = request.getSession().getServletContext().getRealPath("/upload");}public static void main(String[] args) {long old = System.currentTimeMillis();//word 和excel 转为pdfString filePaths = "word地址";String fileName = "转换名称";String pdfPath = "G:/" + fileName + ".pdf";String pdfPathWatermark = "存储地址";doc2pdf(filePaths, pdfPath);//filePaths需要转换的文件位置 pdfPath为存储位置addPngWatermark(pdfPath,pdfPathWatermark,"水印");long now = System.currentTimeMillis();System.out.println("总共耗时:" + ((now - old) / 1000.0) + "秒"); //转化用时}

License.xml

<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>

Java WORD转换PDF 并添加水印 (附赠jar提取链接)相关推荐

  1. java word转pdf 后通过 PdfReader 和 PdfStamper对pdf添加水印 通过poi等组件实现

    所需jar包地址 <!-- java 读取word文件里面的加颜色的字体 转pdf 使用 --><dependency><groupId> e-iceblue &l ...

  2. Aspose.Java实现word转pdf,添加水印等操作

    Aspose.Java实现word转pdf,添加水印等操作 一. word转pdf 二. 文档插入水印 Aspose是一款商用版控件,支持各类文档操作,这里主要介绍如何在Springboot项目中使用 ...

  3. Java使用aopse实现word转换pdf

    Java使用aopse实现word转换pdf 需要引用aspose包,引入操作我写了一个博客,地址如下 https://blog.csdn.net/weixin_46713508/article/de ...

  4. JAVA 使用 com.aspose.words将word转换PDF等

    因为公司前端需要在线查看word和PDF,后台上传需求将word等文件转换为PDF,原本使用的是liboffice进行转换,后来部署到服务器端之后,发现并不是很适合,由此找到com.aspose.wo ...

  5. Java使用Spire.Pdf或Aspose-Words实现Word转换Pdf在Linux服务器上的中文乱码问题

    一.问题产生的背景 当Word文档中含有中文字符时,不管是使用Spire.Pdf或Aspose-Words实现Word转换Pdf,代码的执行都需要调用操作系统的本地字体库支持,否则所有中文字符都将乱码 ...

  6. Linux系统Word转换PDF,文档字体乱码不显示问题解决。

    1.问题 在Windows系统中,使用Java将Word文档转换为PDF格式时,结果文档内容正常:但是在Linux系统中,转出来PDF文档出现乱码或###符号等. 2.问题原因 这个问题是由于Linu ...

  7. 关于poi操作word,word转换pdf预览,这边文章就够了

    最近公司一个项目中需要导出一个简历word版,对于实习生的我开始是无从下手的,后来通过搜索发现可以使用poi来操作. 话不多说,先引入依赖 <dependency><groupId& ...

  8. 解决 linux(centos7)word转换pdf时,pdf乱码问题

    本文解决当word转换为pdf时,pdf文档中的中文字体全部都是乱码(方框)的问题. 先简单的写一下word转换pdf的代码,这个网上有很多(最下方有引用一遍博客详细的讲解了如何转换) /**** @ ...

  9. java word转pdf三种方法(附有需要的jar)

    一.jacob 1.jar下载 jacob.jar和jacob-1.17-x64.dll下载 提取码:0121 2.在jdk/bin目录下引入.dll文件(64位:jacob-1.17-x64.dll ...

最新文章

  1. IDC公布中国深度学习市场综合份额:百度超越Facebook位列第二
  2. Python精讲Numpy基础,大牛笔记详细解释
  3. linux-Tcp IP协议栈源码阅读笔记
  4. 云联会企业认证_今日新鲜事:沉浸式交互购车新体验 2020首届中国春季云车展启幕...
  5. 云开发平台开箱,3分钟零基础搭建个人Hexo博客
  6. 来个“云”毕业典礼,这些装扮太硬核了!
  7. cp文件服务器,docker容器与物理机的文件传输—docker cp命令
  8. 电热水器和插座之间的相亲故事
  9. ai字体行间距怎么调整_字体基础知识(一)
  10. 构建在线教育弹性高可用视频处理架构实战
  11. 想法越多越贫穷,赚钱的人,都是少想多干
  12. Tomcat可以在eclipse里启动,可是不能訪问首页的问题
  13. 【外星眼halcon教程】机器视觉测量消费电子显示屏的颜色
  14. 电子商务网站源码HTML5+CSS3+JavaScript
  15. 存算一体——后摩尔时代的AI芯片架构
  16. 黑苹果内置硬盘识别成外置硬盘_空间大?安全更重要,麦沃 K35274D硬盘阵列盒使用体验--数据无价...
  17. Intel CPU型号解读以及如何粗略判断Intel CPU的性能(i3、i5、i7以及CPU的代数)
  18. 加密word去除密码教程
  19. VSCode选中变量高亮颜色及注释颜色更改
  20. 虚拟机安装未开启虚拟化

热门文章

  1. 自适应空间特征融合( adaptively spatial feature fusion)一种基于数据驱动的金字塔特征融合策略
  2. 【Kaggle】FIFA球员数据可视化分析(一)
  3. 在IDC机房,1m宽带下载速度是多少?
  4. 与人斗,其乐无穷!- 职场做人天天练 ! [推荐]
  5. 许昌学院校园网服务大厅模拟登录
  6. 《数据结构与算法》(十九)- 多路查找树
  7. 【浙大pta大计基】
  8. php pageoffice安装,senman
  9. 51单片机接上拉电阻原理
  10. 面向削峰填谷的电动汽车多目标优化调度策略 代码主要实现了考虑电动汽车参与削峰填谷的场景下,电动汽车充放电策略的优化,是一个多目标优化