aspose.slides for java去除水印
前一段时间使用aspose.slides for java,处理了下才去除的水印,但是时间一久就忘记了,重新整理了下
下载aspose-slides-19.3-jdk16.jar,重命名为aspose.slides-19.3.jar(为了在maven应用才改名的)
(1)使用jd-gui查看jar包
注册文件的加载类License
package com.aspose.slides;import com.aspose.slides.exceptions.InvalidOperationException; import com.aspose.slides.internal.k5.return; import com.aspose.slides.ms.System.IDisposable; import com.aspose.slides.ms.System.p; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream;public class Licenseimplements ILicense {public void setLicense(InputStream stream)throws AsposeLicenseException{try{ByteArrayInputStream localByteArrayInputStream = null;if (stream != null){localObject = new ByteArrayOutputStream();byte[] arrayOfByte = new byte[1024];int i;while ((i = stream.read(arrayOfByte)) > 0)((ByteArrayOutputStream)localObject).write(arrayOfByte, 0, i);((ByteArrayOutputStream)localObject).flush();localByteArrayInputStream = new ByteArrayInputStream(((ByteArrayOutputStream)localObject).toByteArray());}Object localObject = new return();((return)localObject).jdMethod_do(localByteArrayInputStream);}catch (IOException localIOException1){throw new InvalidOperationException("License stream is not available for reading");}}public void setLicense(String namePath)throws AsposeLicenseException{try{FileInputStream localFileInputStream = null;if ((null != namePath) && (!"".equals(namePath)))localFileInputStream = new FileInputStream(namePath);setLicense(localFileInputStream);}catch (FileNotFoundException localFileNotFoundException1){throw new InvalidOperationException("License stream is not available for reading");}}public static String getVersion(){return return.jdMethod_new();}public void resetLicense(){return.jdMethod_for();}public boolean isLicensed(){int i = 0;Presentation localPresentation = new Presentation();try{ISlide localISlide = localPresentation.getSlides().addEmptySlide(localPresentation.getLayoutSlides().getByType(11));IAutoShape localIAutoShape = localISlide.getShapes().addAutoShape(5, 10.0F, 10.0F, 200.0F, 100.0F);localIAutoShape.getTextFrame().setText(p.jdMethod_if("", 500, 'a'));i = localIAutoShape.getTextFrame().getText().length() == 500 ? 1 : 0;}finally{if (localPresentation != null)localPresentation.dispose();}return i;} }
View Code
主要的处理类为return
说明:具体是是哪一个类,要看具体情况,不同的版本是有差异的
关键代码
private static void jdField_do(Node paramNode1, Node paramNode2, String[] paramArrayOfString){PublicKey localPublicKey = null;Object localObject;try{KeyFactory localKeyFactory = KeyFactory.getInstance("RSA");localObject = void.jdField_do(jdField_if(paramArrayOfString));localPublicKey = localKeyFactory.generatePublic((KeySpec)localObject);}catch (Exception localException1){new float(){}.jdField_do(new throws(){}.jdField_if, localException1);}try{String str1 = paramNode1 != null ? jdField_do(paramNode1) : "";localObject = str1.getBytes("UTF-16LE");String str2 = paramNode2 != null ? paramNode2.getFirstChild().getNodeValue() : "";byte[] arrayOfByte = try.jdField_do(str2);Signature localSignature = Signature.getInstance("SHA1withRSA");localSignature.initVerify(localPublicKey);localSignature.update(localObject);if (!localSignature.verify(arrayOfByte))new float(){}.jdField_do(new throws(){}.jdField_for);}catch (Exception localException2){new float(){}.jdField_do(new throws(){}.jdField_int, localException2);}}
View Code
(2)使用javassist
使用rsa加密验证许可证的合法性,屏蔽验证过程许可证即有效
用进行代码修改
import javassist.ClassPool; import javassist.CtClass; import javassist.CtMethod;public class Main {public static void main(String[] args) {try {ClassPool.getDefault().insertClassPath("lib/aspose.slides-19.3.jar");CtClass c2 = ClassPool.getDefault().getCtClass("com.aspose.slides.internal.k5.return");CtMethod[] ms = c2.getDeclaredMethods();for (CtMethod c : ms) {System.out.println(c.getName());CtClass[] ps = c.getParameterTypes();for (CtClass cx : ps) {System.out.println("\t" + cx.getName());}if (ps.length == 3&& ps[0].getName().equals("org.w3c.dom.Node")&& ps[1].getName().equals("org.w3c.dom.Node")) {System.out.println("find it!");c.setBody("{return;}");}}c2.writeFile();} catch (Exception e) {e.printStackTrace();}} }
说明:
javassist下载使用参考https://www.cnblogs.com/baby123/p/10871154.html
重新生成jar包:
a. 将以前的 aspose.slides-19.3.jar 修改aspose.slides-19.3.zip
b. 解压 aspose.slides-19.3.zip 为 aspose.slides-19.3
c. 将刚才生成的 com\aspose\slides\internal\mx\return.class 替换掉 aspose.slides-19.3 里的 return.class
d. 将 META-INF 下除了 MANIFEST.MF 其他文件都删掉
e. 压缩 aspose.slides-19.3 为 aspose.slides-19.3.zip
f. 修改文件名为 aspose.slides-19.3.jar
(3)许可文件 license.xml
<License><Data><Products><Product>Aspose.Total for Java</Product> </Products><EditionType>Enterprise</EditionType><SubscriptionExpiry>20991231</SubscriptionExpiry><LicenseExpiry>20991231</LicenseExpiry><SerialNumber>------</SerialNumber></Data><Signature>------</Signature> </License>
aspose.slides使用https://www.cnblogs.com/baby123/p/10863759.html
注意:此教程及下载文件只允许学习使用,不得用于商业用途,请购买授权正版 apose
转载于:https://www.cnblogs.com/baby123/p/11046704.html
aspose.slides for java去除水印相关推荐
- PPT开发控件 Aspose.Slides for Java 授权须知
Aspose.Slides是一款用于生成,管理和转换PowerPoint幻灯片的本机API,可以使用多种格式,而不需要Microsoft PowerPoint.并且可在任何平台上操作PowerPoin ...
- Aspose.Slides for Java 3.0 发布
Aspose.Slides for Java 3.0 发布,主要改进包括: 幻灯片打印 图表渲染 SmartArt 渲染 PPT/ODT 转 PPTX 导出幻灯片到 HTML 支持 OOXML 另外从 ...
- Aspose for Java 去除水印和数量限制
用于学习,不可用于商业! 1.maven 依赖引用 <!--word--> <dependency><groupId>com.aspose</groupId& ...
- java去除水印_易剪辑,分享一款免费的去除水印的工具
每日推文时间,早上7:30,抛砖引玉,伴你一同终生学习··· 易剪辑 这款软件由来,上次需要提交视频到腾讯审核,发现网上下载的适配都带logo水印,这样的适配一般很难通过审核.然后网上搜索,发现了这款 ...
- Aspose.Slides for java 22.9最新版 官网最新
最新版支持转换种类和效率都有很大提升 aspose为ppt提供的操作转化工具 ppt转换成各种文档都可 版本已无水印 一句代码即可 简单有效 可配合测试 协助解决 代开发app与api等
- java去除水印_Java添加、删除Word水印
水印是一种常用于各种文档的声明.防伪手段.在Word文档里面,一般可设置文字水印(默认添加方式)或者加载图片作为水印(自定义水印)以及删除水印.以下内容将分享通过Java编程来实现以上Word水印操作 ...
- 想在Java中把PPT转化为PDF吗?教你用Aspose.Slides轻松搞定!
PDF已成为最广泛和最常用的数字文档格式.由于PDF格式具有固定的布局,因此大多数文档在共享之前都已转换为PDF. 在将各种文档转换为PDF格式的过程中,PPT到PDF的转换是一种流行的用例,且非常的 ...
- 【版本更新】Aspose.Slides V17.10发布 | 支持免费下载
2019独角兽企业重金招聘Python工程师标准>>> Aspose.Slides for .NET 17.10 更新 85折限时优惠 功能和改进 核心 概述 类别 SLIDESNE ...
- 【更新】PPT管理控件Aspose.Slides V17.5发布 | 附下载
2019独角兽企业重金招聘Python工程师标准>>> Aspose.Slides for .NET 17.5 功能和改进 核心 概述 类别 SLIDESNET-38576 生成的S ...
最新文章
- JAVA8 十大新特性
- 洛谷——P1106 删数问题
- 云计算,移动云计算,虚拟化技术概念以及相关技术注解
- 关于HOG特征的一个Python代码
- Leetcode-第 283 场周赛
- Android Material风格的应用(三)--DrawerLayout
- 多线程之间的通信(等待唤醒机制、Lock 及其它线程的方法)
- 数据结构和算法(06)---二叉树(c++)
- linux vps 运行exe文件夹,在centos环境下运行.exe文件
- CenOs6.3下博通BCM4313无线网卡驱动
- 镜像数据库上SQL Server复制
- WIN10 如何修改 文件后缀名 设置后缀名可修改
- C++ 循环for 引用 for(string : )
- 经过事件还是箭头 html,箭头函数不合适什么场景?
- mongovue mysql_MongoDB 客户端 MongoVue
- HTML——H5前端框架
- JUC源码分析16-集合-ConcurrentSkipListMap、ConcurrentSkipListSet
- vue怎么调用子元素的方法_vue 父组件中调用子组件函数的方法
- C# MVC 微信支付教程系列之公众号支付
- springboot异常:Unrecognized field xxx , not marked as ignorable 问题
热门文章
- Kivy教程之 08 倒计时App实现timer调用(教程含源码)
- 随机梯度下降法,批量梯度下降法和小批量梯度下降法以及代码实现
- python安装以后怎么打开_安装python后如何打开
- 每日一题 No.4 男女搭配干活不累
- 关于“硬解码”与“软解码”
- h5+js+ajax+百度翻译API:实现翻译功能
- 矩阵对应多项式?多项式?→从特征多项式和哈密顿凯莱定理开始
- typescript学习记录-练习项目-贪食蛇
- 图片怎么转换为jpg格式的?照片如何在线转格式?
- “PHP语言,是全世界最好用的编程语言!“