前一段时间使用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去除水印相关推荐

  1. PPT开发控件 Aspose.Slides for Java 授权须知

    Aspose.Slides是一款用于生成,管理和转换PowerPoint幻灯片的本机API,可以使用多种格式,而不需要Microsoft PowerPoint.并且可在任何平台上操作PowerPoin ...

  2. Aspose.Slides for Java 3.0 发布

    Aspose.Slides for Java 3.0 发布,主要改进包括: 幻灯片打印 图表渲染 SmartArt 渲染 PPT/ODT 转 PPTX 导出幻灯片到 HTML 支持 OOXML 另外从 ...

  3. Aspose for Java 去除水印和数量限制

    用于学习,不可用于商业! 1.maven 依赖引用 <!--word--> <dependency><groupId>com.aspose</groupId& ...

  4. java去除水印_易剪辑,分享一款免费的去除水印的工具

    每日推文时间,早上7:30,抛砖引玉,伴你一同终生学习··· 易剪辑 这款软件由来,上次需要提交视频到腾讯审核,发现网上下载的适配都带logo水印,这样的适配一般很难通过审核.然后网上搜索,发现了这款 ...

  5. Aspose.Slides for java 22.9最新版 官网最新

    最新版支持转换种类和效率都有很大提升 aspose为ppt提供的操作转化工具 ppt转换成各种文档都可 版本已无水印 一句代码即可 简单有效 可配合测试 协助解决 代开发app与api等

  6. java去除水印_Java添加、删除Word水印

    水印是一种常用于各种文档的声明.防伪手段.在Word文档里面,一般可设置文字水印(默认添加方式)或者加载图片作为水印(自定义水印)以及删除水印.以下内容将分享通过Java编程来实现以上Word水印操作 ...

  7. 想在Java中把PPT转化为PDF吗?教你用Aspose.Slides轻松搞定!

    PDF已成为最广泛和最常用的数字文档格式.由于PDF格式具有固定的布局,因此大多数文档在共享之前都已转换为PDF. 在将各种文档转换为PDF格式的过程中,PPT到PDF的转换是一种流行的用例,且非常的 ...

  8. 【版本更新】Aspose.Slides V17.10发布 | 支持免费下载

    2019独角兽企业重金招聘Python工程师标准>>> Aspose.Slides for .NET 17.10 更新 85折限时优惠 功能和改进 核心 概述 类别 SLIDESNE ...

  9. 【更新】PPT管理控件Aspose.Slides V17.5发布 | 附下载

    2019独角兽企业重金招聘Python工程师标准>>> Aspose.Slides for .NET 17.5 功能和改进 核心 概述 类别 SLIDESNET-38576 生成的S ...

最新文章

  1. JAVA8 十大新特性
  2. 洛谷——P1106 删数问题
  3. 云计算,移动云计算,虚拟化技术概念以及相关技术注解
  4. 关于HOG特征的一个Python代码
  5. Leetcode-第 283 场周赛
  6. Android Material风格的应用(三)--DrawerLayout
  7. 多线程之间的通信(等待唤醒机制、Lock 及其它线程的方法)
  8. 数据结构和算法(06)---二叉树(c++)
  9. linux vps 运行exe文件夹,在centos环境下运行.exe文件
  10. CenOs6.3下博通BCM4313无线网卡驱动
  11. 镜像数据库上SQL Server复制
  12. WIN10 如何修改 文件后缀名 设置后缀名可修改
  13. C++ 循环for 引用 for(string : )
  14. 经过事件还是箭头 html,箭头函数不合适什么场景?
  15. mongovue mysql_MongoDB 客户端 MongoVue
  16. HTML——H5前端框架
  17. JUC源码分析16-集合-ConcurrentSkipListMap、ConcurrentSkipListSet
  18. vue怎么调用子元素的方法_vue 父组件中调用子组件函数的方法
  19. C# MVC 微信支付教程系列之公众号支付
  20. springboot异常:Unrecognized field xxx , not marked as ignorable 问题

热门文章

  1. Kivy教程之 08 倒计时App实现timer调用(教程含源码)
  2. 随机梯度下降法,批量梯度下降法和小批量梯度下降法以及代码实现
  3. python安装以后怎么打开_安装python后如何打开
  4. 每日一题 No.4 男女搭配干活不累
  5. 关于“硬解码”与“软解码”
  6. h5+js+ajax+百度翻译API:实现翻译功能
  7. 矩阵对应多项式?多项式?→从特征多项式和哈密顿凯莱定理开始
  8. typescript学习记录-练习项目-贪食蛇
  9. 图片怎么转换为jpg格式的?照片如何在线转格式?
  10. “PHP语言,是全世界最好用的编程语言!“