aspose-pdf 去除水印以及处理的页数限制 操作aspose-pdf-20.12-jdk17.jar 对其重编译修改校验权限 使用javassist 重编译学习测试使用package com.xlw.filebag.compile; import javassist.ClassPool; import javassist.CtClass; import javassist.CtMethod; /** * date 2021-03-16 * user xlw * PDFCompile * */ public class PDFCompile { public static void main(String[] args) throws Exception { compile(); } public static void compile() throws Exception{ ClassPool.getDefault().insertClassPath(C:\\Users\\Administrator\\Desktop\\jar\\aspose-pdf-20.12-jdk17.jar); CtClass ctClass ClassPool.getDefault().getCtClass(com.aspose.pdf.ADocument); CtMethod[] declaredMethods ctClass.getDeclaredMethods(); for (CtMethod method: declaredMethods) { CtClass[] ps method.getParameterTypes(); if (ps.length2 method.getName().equals(lI) ps[0].getName().equals(com.aspose.pdf.ADocument) ps[1].getName().equals(int)){ // 最多只能转换4页 处理 System.out.println(method.getReturnType()); System.out.println(ps[1].getName()); method.setBody({return false;}); } if (ps.length0 method.getName().equals(lt)){ // 水印处理 method.setBody({return true;}); } } ctClass.writeFile(C:\\Users\\Administrator\\Desktop\\jar\\); } }package com.ysxn.office; import javassist.*; import java.io.IOException; /** * aspose-cells for java 21.11 测试 * author : xlw * since : 2026-09-02 13:59 * JavasistCompile */ public class JavasistCompile { public static void main(String[] args) { crackAsposePdfJar(C:\\Users\\Administrator\\Desktop\\aspose-cells-21.11.jar); } private static final String DesktopC:\\Users\\Administrator\\Desktop\\; private static void crackAsposePdfJar(String jarName) { try { // 这个是得到反编译的池 ClassPool pool ClassPool.getDefault(); // 取得需要反编译的jar文件设定路径 pool.insertClassPath(jarName); CtClass ctClass pool.get(com.aspose.cells.License); CtMethod[] declaredMethods ctClass.getDeclaredMethods(); for (CtMethod method : declaredMethods) { if (method.getName().equals(isLicenseSet)) { method.setBody({return true;}); continue; } if (method.getName().equals(setLicense)) { method.setBody({ a this;\n com.aspose.cells.zblc.a();}); continue; } } ctClass.writeFile(Desktop); } catch (NotFoundException e) { e.printStackTrace(); } catch (CannotCompileException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }编译之后替换jar包中原来的class文件并删除原有jar中 37E3C32D.SF 、37E3C32D.RSA 文件