admin管理员组

文章数量:1605200

首先感谢 Mgg9702 博主提供的转换依赖包处理,关于如何获得一个破解的pdf转word我这里就不追述了,有需要去看:
https://blog.csdn/Mgg9702/article/details/124987483?spm=1001.2014.3001.5506

我这里主要涉及到整理一个pdf转word的jar工具

1.首先用以上方法得到一个纯净的jar包

引入jar包或依赖
这里用到的是aspose-pdf,这个依赖需要单独配置仓库地址,也可以直接去官网下载jar包
pom文件详情

<dependencies>
        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.20.0-GA</version>
        </dependency>
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-pdf</artifactId>
            <version>22.4</version>
        </dependency>
</dependencies>
<repositories>
	<repository>
		<id>AsposeJavaAPI</id>
		<name>Aspose Java API</name>
		<url>https://repository.aspose/repo/</url>
	</repository>
</repositories>

破解
找到你的jar包地址,引入依赖的去maven仓库地址找到jar,将地址填入代码中的jarPath,运行Main方法会在jar包统计目录下生成破解的包
aspose-pdf-22.4.cracked.jar,替换掉原来jar包就可以了

public class PDFJarCrack {
   
    public static void main(String[] args) throws Exception {
   
        String jarPath = "jar包地址";
        crack(jarPath);
    }
    
    private static void crack(String jarName) {
   
        try {
   
            ClassPool.getDefault().insertClassPath(jarName);
            CtClass ctClass = ClassPool.getDefault().getCtClass("com.aspose.pdf.ADocument");
            CtMethod[] declaredMethods = ctClass.getDeclaredMethods();
            int num = 0;
            for (int i = 0; i < declaredMethods.length; i++) {
   
                if (num == 2) {
   
                    break;
                }
                CtMethod method = declaredMethods[i];
                CtClass[] ps = method.getParameterTypes();
                if (ps.length == 2
                        && 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;}");
                    num = 1;
                }
                if (ps.length == 0 && method.getName().equals("lt")) {
   
                    // 水印处理
                    method.setBody("{return true;}");
                    num = 2;
                }
            }
            File file = new File(jarName);
            ctClass.writeFile(file.getParent());
            disposeJar(jarName, file.getParent(

本文标签: JavaPDFword