使用Aspose.Words将word转PDF并且去水印。 |
您所在的位置:网站首页 › 咋个去除水印 › 使用Aspose.Words将word转PDF并且去水印。 |
😜作 者:是江迪呀✒️本文关键词:Java、工具类、转换、word转pdf、Aspose.Words、后端☀️每日 一言:只要思想不滑坡,办法总比困难多。
前言
在我们日常开发中经常会有将word文档转为PDF的场景,有很多种方法我最倾向的的是使用Aspose.Words,原因是转出的PDF内容不会缺失很好用。但是Aspose.Words如果使用的话需要付费,不然转出的PDF会带有水印,但是可以通过代码去除,仅供研究学习。下面让我一起来研究学习下吧。 一、引入依赖Aspose.Words官网地址 com.aspose aspose-words 21.6 jdk16问题:我们会发现使用POM文件引入依赖的方式无法下载jar包,我们可以通过在官网下载jar放到本地maven仓库的方式解决。 1.1 下载jar包
重新加载下maven即可。 转换前: 当我们有购买了许可证时,我们需要使用 License()方法认证许可证,只需要找到认证代码然后使用Java的反射机制将认证代码替换成认证通过即可。 (1)找到许可证验证 License license = new License(); license.setLicense(""); license.setLicense(new FileInputStream(""));我们通过Debug可以发现认证使用到了两个静态参数: package com.aspose.words; final class zzXyu { //认证 public static final byte[] zzZXG = new byte[]{69, 86, 65, 76, 85, 65, 84, 73, 79, 78}; //认证通过 public static final byte[] zz1Y = new byte[]{76, 73, 67, 69, 78, 83, 69, 68}; }(2)通过Java反射拿到zzXyu类的Class对象 Class aClass = Class.forName("com.aspose.words.zzXyu");(3)通过反射获取了名为 “zzZXG” 的字段对应的 Field 对象。= java.lang.reflect.Field zzZXG = aClass.getDeclaredField("zzZXG");(4)设置了字段zzZXG可访问,因为它是私有的 zzZXG.setAccessible(true);(5)获取了zzZXG字段的类型对象(字段的修饰符) java.lang.reflect.Field modifiersField = zzZXG.getClass().getDeclaredField("modifiers");(5)设置修饰符可以被修改 modifiersField.setAccessible(true);(6)去除zzZXG前面的final修饰符,便于后续修改 modifiersField.setInt(zzZXG, zzZXG.getModifiers() & ~Modifier.FINAL);(7)设置zzZXG的值为校验通过 zzZXG.set(null,new byte[]{76, 73, 67, 69, 78, 83, 69, 70}); 三、总结我们上述代码仅供参考学习! 注意:我们目前使用的Aspose.Words的版本是21.6,最新的版本是23.5,上面去除水印的代码仅支持到21.6。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |