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 License
implements 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;
}
}
主要的处理类为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);
}
}
(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
aspose.slides for java去除水印的更多相关文章
- java利用Aspose.slides.jar将本地ppt文档转化成pdf(完美破解版 无水印 无中文乱码)
下载aspose.slides-15.9.0.jar包 http://pan.baidu.com/s/1jH3ZNbK JAVA代码 package webViewer; import java.io ...
- C# 利用Aspose.Slides.dll将本地ppt文档转化成pdf(完美破解版 无水印 无中文乱码)
下载Aspose.Slides.dll http://pan.baidu.com/s/1kVPjnzL 添加引用C#代码. using System; using System.Collectio ...
- Spring boot使用Aspose.Slides操作ppt转PDF、转图片
最近要将ppt转为PDF和图片,Apache poi ,jacob都试了下 Apache poi 转图片乱码,处理了,还会存在部分乱码 jacob对系统依赖比较大,必须是windows还得安装MS O ...
- Atitit.去除水印的方案
Atitit.去除水印的方案 1.1. 查找水印的位置 Kegwa imgd posit zo ok le .. Auto find d zo troub ...manu easy 1.2. 还原去除 ...
- 【Aspose.Words for Java】 对word文档,增加页眉,页脚,插入内容区图像,
一.环境准备 jar包:aspose-words-20.4.jar 或者去官方网站下载: 官方网站:https://www.aspose.com/ 下载地址:https://downloads.asp ...
- [转]java去除List中重复的元素
java去除List中重复的元素 如果用Set ,倘若list里边的元素不是基本数据类型而是对象, 那么请覆写Object的boolean equals(Object obj) 和int ...
- AnyChartStock去除水印方法
最近在使用AnyChartStock的图表,功能很强大,但下载过来是有水印的,虽然网上也有很多破解无水印的版本,但基本都是AnyChart的,AnyChartStoc的几乎没有.所以自己尝试着去除水印 ...
- PS小实验-去除水印
PS小实验-去除水印 水印是一些品牌商覆盖在图片或视频上的一个商标logo或小文本,比如大家最讨厌的百度logo,作者本人也是比较讨厌水印的,让好端端的一张图片变得美中不足. 个人觉得用photosh ...
- pdf 移除密码 去除水印 批量去除水印 编辑文字 批量替换文字
1.pdf除密码: http://pan.baidu.com/share/link?shareid=308194398&uk=370045712 2.去除水印:http://wenku.ba ...
随机推荐
- python——使用xlwing库进行Excel操作
Excel是现在比不可少的数据处理软件,python有很多支持Excel操作的库,xlwing就是其中之一. xlwings的安装 xlwings库使用pip安装: 在控制台输入 pip instal ...
- 软帝学院:java多线程知识点分享
1.进程和线程: 进程:正在进行的程序.每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元. 线程:进程内部的一条执行路径或者一个控制单元. 两者的区别: 一个进程至少有一个线程 ...
- Hibernate缓存简介和对比、一级缓存、二级缓存详解
一.hibernate缓存简介 缓存的范围分为3类: 1.事务范围(单Session即一级缓存) 事务范围的缓存只能被当前事务访问,每个事务都有各自的缓存,缓存内的数据通常采用相互关联的对象 ...
- springboot(二)
SpringBoot使用JSP 1.创建一个webapp子项目 2.导入依赖 <!-- 配置springboot的父节点依赖,之后引入就不需要添加version配置了! springboot会自 ...
- H5页面中判断是安卓手机还是ios手机的方法;APP页面中嵌套的H5跳转到APP其他页面的方法。
(一).在H5页面中,可以直接利用如下的方法来进行判断是安卓还是ios. var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linu ...
- hibernate之一对多关系
1. 什么是关联(association) 1.1 关联指的是类之间的引用关系.如果类A与类B关联,那么被引用的类B将被定义为类A的属性.例如: public class A{ private B b ...
- Cogs 739. [网络流24题] 运输问题(费用流)
[网络流24题] 运输问题 ★★ 输入文件:tran.in 输出文件:tran.out 简单对比 时间限制:1 s 内存限制:128 MB «问题描述: «编程任务: 对于给定的m 个仓库和n 个零售 ...
- 表单提交 curl和浏览器方式
表单被提交时,每个表单域都会被Url编码之后才在被发送. 浏览器每次向服务器发送url时,会进行编码,然后web服务器再进行解码. 所以,理论上,curl模拟登陆时,所传参数都必须urlencode一 ...
- JS和JQuery实现Button绑定键盘Enter事件实现提交
JavaScript实现方法 document.onkeydown = function(e) { if (!e) e = window.event;//火狐中是 window.event if (( ...
- 坑爹微信之读取PKCS12流时出现的java.io.IOException: DerInputStream.getLength
背景 微信退款接口需要使用到证书,我参考微信的官方Demo进行,部分代码如下: char[] password = config.getMchID().toCharArray(); InputStre ...