前一段时间使用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去除水印的更多相关文章

  1. java利用Aspose.slides.jar将本地ppt文档转化成pdf(完美破解版 无水印 无中文乱码)

    下载aspose.slides-15.9.0.jar包 http://pan.baidu.com/s/1jH3ZNbK JAVA代码 package webViewer; import java.io ...

  2. C# 利用Aspose.Slides.dll将本地ppt文档转化成pdf(完美破解版 无水印 无中文乱码)

    下载Aspose.Slides.dll   http://pan.baidu.com/s/1kVPjnzL 添加引用C#代码. using System; using System.Collectio ...

  3. Spring boot使用Aspose.Slides操作ppt转PDF、转图片

    最近要将ppt转为PDF和图片,Apache poi ,jacob都试了下 Apache poi 转图片乱码,处理了,还会存在部分乱码 jacob对系统依赖比较大,必须是windows还得安装MS O ...

  4. Atitit.去除水印的方案

    Atitit.去除水印的方案 1.1. 查找水印的位置 Kegwa imgd posit zo ok le .. Auto find d zo troub ...manu easy 1.2. 还原去除 ...

  5. 【Aspose.Words for Java】 对word文档,增加页眉,页脚,插入内容区图像,

    一.环境准备 jar包:aspose-words-20.4.jar 或者去官方网站下载: 官方网站:https://www.aspose.com/ 下载地址:https://downloads.asp ...

  6. [转]java去除List中重复的元素

    java去除List中重复的元素 如果用Set ,倘若list里边的元素不是基本数据类型而是对象, 那么请覆写Object的boolean   equals(Object   obj)   和int  ...

  7. AnyChartStock去除水印方法

    最近在使用AnyChartStock的图表,功能很强大,但下载过来是有水印的,虽然网上也有很多破解无水印的版本,但基本都是AnyChart的,AnyChartStoc的几乎没有.所以自己尝试着去除水印 ...

  8. PS小实验-去除水印

    PS小实验-去除水印 水印是一些品牌商覆盖在图片或视频上的一个商标logo或小文本,比如大家最讨厌的百度logo,作者本人也是比较讨厌水印的,让好端端的一张图片变得美中不足. 个人觉得用photosh ...

  9. pdf 移除密码 去除水印 批量去除水印 编辑文字 批量替换文字

    1.pdf除密码: http://pan.baidu.com/share/link?shareid=308194398&uk=370045712  2.去除水印:http://wenku.ba ...

随机推荐

  1. mac随笔

    1.查看端口,lsof -i tcp:post lsof -i tcp:8086 2.kill进程 找到进程的PID,使用kill命令:kill PID(进程的PID,如2044),杀死对应的进程 k ...

  2. SQL异常总结

    1.resultType和resultMap写错时,启动时就会报错 原因: 2.The error occurred while handling results ### SQL: select US ...

  3. sass中的占位符%,@extend,@mixin(@include)的编译区别和使用场景

    对于下面同一段css,它们的编译效率是不同的. 1.使用@extend:基础类icon会出现在编译后的css文件中,即使它可能只是拿来被继承,而不是作为icon这个class单独使用 //基础类ico ...

  4. python 格式化输出%s %f %d

    格式说明由%和格式字符组成,如%f,它的作用是将数据按照指定的格式输出.格式说明是由“%”字符开始的. 1.整型输出%d print 'my age is %d'% (26) 说明:%d相当于是一个占 ...

  5. Bootstrap Method

    bootstrap方法是一种重采样技术,用于通过抽样数据集来估计总体统计数据.是一种面向应用的.基于大量计算的统计思维——模拟抽样统计推断. 它可以用来估计统计数据,例如平均值或标准差.在应用机器学习 ...

  6. apache-tomcat安装

    1.下载apache-tomcat 网址:http://tomcat.apache.org 下载 tomcat 9.0.29 2.解压后设置控制台显示中文不乱码 在 apache-tomcat-9.0 ...

  7. Windows 系统PowerShell或cmd设置添加静态路由方式

    电脑上添加静态路由,PowerShell或cmd设置路由 方法/步骤1.首先以管理员身份在“运行”窗口输入cmd或PowerShell(按WIN+R打开运行窗口),然后回车进入命令行,输入 route ...

  8. 洛谷 P2004 领地选择 题解

    P2004 领地选择 题目描述 作为在虚拟世界里统帅千军万马的领袖,小Z认为天时.地利.人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小T来说是非常重要的. 首都被认为是一个占地C*C的正方形. ...

  9. 【JZOJ6229】【20190621】san

    题目 \(n\)个点\(m\)条边的有向图,每个点有点权 你可以选择拓扑序的一个区间的 最大化点权和 $n \le 50  , m \le \frac{n*(n-1)}{2} , 0 \le |a_i ...

  10. 每日Android一问等你来解答-什么是Activity的生命周期?

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 什么是Activity的生命周期? 生命周期: 对于生命周期我们 ...