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 ...
随机推荐
- 压缩及解压命令gzip、bzip2、tar
1. gzip 描述:压缩与解压缩 用法:gzip[选项]...[文件名称]... 选项:-d 解压 gzip hello.txt # 文件压缩后名为hello.txt.gz gzip -d ...
- 51nod1712 区间求和
http://www.51nod.com/Challenge/Problem.html#problemId=1712 先考虑题面中的简化问题. 对于\(i\in [1,n]\),\(a_i\)的贡献为 ...
- Alpha冲刺(7/10)——2019.4.30
所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(7/10)--2019.4.30 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...
- linux中的操作记录
在hadoop上运行jar文件:hadoop jar xxx.jar main路径 命令模式: 1.dd 删除光标所在的当前行 2.Ctrl+u 删除光标所在行光标之前的内容 3.命令模式下,按‘/’ ...
- python写入excel(方式二待完善)
import xlsxwriter #创建一个工作簿并添加一张工作表,当然工作表是可以命名的# workbook = xlsxwriter.Workbook('Expenses01.xlsx')# w ...
- LeetCode 741. Cherry Pickup
原题链接在这里:https://leetcode.com/problems/cherry-pickup/ 题目: In a N x N grid representing a field of che ...
- Github搭建简单的博客
1)安装pelcan和markdown pip install pelican markdown --upgrade 2)创建一个文件夹用来作为博客的目录 mkdir 博客目录 3)cd到该目录下运行 ...
- learning scala zipAll
If two Iterables aren't the same size, then zipAll can provide fillers for what it couldn't find a c ...
- javascript 百度地图无秘钥(appkey)创建marker标记地图
创建简单的marker地图不一定需要去百度地图申请key,简单代码实现marker地图,效果如图: html代码如下,代码中的baidu.api.js参考后面的隐藏代码: <!DOCTYPE h ...
- 忽略 IDEA 文件
IntelliJ IDEA .idea *.iml /WebRoot/WEB-INF/classes