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 ...
随机推荐
- mac随笔
1.查看端口,lsof -i tcp:post lsof -i tcp:8086 2.kill进程 找到进程的PID,使用kill命令:kill PID(进程的PID,如2044),杀死对应的进程 k ...
- SQL异常总结
1.resultType和resultMap写错时,启动时就会报错 原因: 2.The error occurred while handling results ### SQL: select US ...
- sass中的占位符%,@extend,@mixin(@include)的编译区别和使用场景
对于下面同一段css,它们的编译效率是不同的. 1.使用@extend:基础类icon会出现在编译后的css文件中,即使它可能只是拿来被继承,而不是作为icon这个class单独使用 //基础类ico ...
- python 格式化输出%s %f %d
格式说明由%和格式字符组成,如%f,它的作用是将数据按照指定的格式输出.格式说明是由“%”字符开始的. 1.整型输出%d print 'my age is %d'% (26) 说明:%d相当于是一个占 ...
- Bootstrap Method
bootstrap方法是一种重采样技术,用于通过抽样数据集来估计总体统计数据.是一种面向应用的.基于大量计算的统计思维——模拟抽样统计推断. 它可以用来估计统计数据,例如平均值或标准差.在应用机器学习 ...
- apache-tomcat安装
1.下载apache-tomcat 网址:http://tomcat.apache.org 下载 tomcat 9.0.29 2.解压后设置控制台显示中文不乱码 在 apache-tomcat-9.0 ...
- Windows 系统PowerShell或cmd设置添加静态路由方式
电脑上添加静态路由,PowerShell或cmd设置路由 方法/步骤1.首先以管理员身份在“运行”窗口输入cmd或PowerShell(按WIN+R打开运行窗口),然后回车进入命令行,输入 route ...
- 洛谷 P2004 领地选择 题解
P2004 领地选择 题目描述 作为在虚拟世界里统帅千军万马的领袖,小Z认为天时.地利.人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小T来说是非常重要的. 首都被认为是一个占地C*C的正方形. ...
- 【JZOJ6229】【20190621】san
题目 \(n\)个点\(m\)条边的有向图,每个点有点权 你可以选择拓扑序的一个区间的 最大化点权和 $n \le 50 , m \le \frac{n*(n-1)}{2} , 0 \le |a_i ...
- 每日Android一问等你来解答-什么是Activity的生命周期?
关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 什么是Activity的生命周期? 生命周期: 对于生命周期我们 ...