jar包破解

1、pom文件

分别复制进pom文件,记得配置maven的中央仓库在settings.xml中配置单独的仓库地址<repositories><repository><id>AsposeJavaAPI</id><name>Aspose Java API</name><url>https://repository.aspose.com/repo/</url></repository></repositories>相关依赖<dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.20.0-GA</version></dependency><!-- https://mvnrepository.com/artifact/com.aspose/aspose-pdf --><dependency><groupId>com.aspose</groupId><artifactId>aspose-pdf</artifactId><version>21.8</version></dependency>

2、破解代码

复制粘贴修改一下路径,直接运行

package red.htt;import cn.comingnet.app.bean.JumpInfo;
import cn.comingnet.app.bean.SchemeDto;
import cn.comingnet.common.util.HttpClientUtils;
import cn.comingnet.common.util.Jsons;
import cn.comingnet.common.util.StringUtil;
import cn.comingnet.front.constants.BaseConst;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aspose.pdf.Document;
import com.aspose.pdf.SaveFormat;
import com.aspose.pdf.internal.imaging.internal.Exceptions.IO.FileNotFoundException;
import javassist.*;
import org.apache.batik.i18n.LocaleGroup;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.helpers.LogLog;
import org.junit.Test;import java.io.*;
import java.util.*;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.jar.JarOutputStream;public class Demo {public static void main(String[] args) throws Exception {//找到自己的maven仓库这个jar包对应的路径,替换掉,别的不需要动String jarPath = "E:\\maven\\mvnRepository\\com\\aspose\\aspose-pdf\\21.8\\aspose-pdf-21.8.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()+"/com/aspose/pdf/ADocument.class");} catch(NotFoundException e){e.printStackTrace();} catch(CannotCompileException e){e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}private static void disposeJar(String jarName, String replaceFile) {List<String> deletes = new ArrayList<>();deletes.add("META-INF/37E3C32D.SF");deletes.add("META-INF/37E3C32D.RSA");File oriFile = new File(jarName);if (!oriFile.exists()) {System.out.println("######Not Find File:" + jarName);return;}
//将文件名命名成备份文件String bakJarName = jarName.substring(0, jarName.length() - 3) + "cracked.jar";//   File bakFile=new File(bakJarName);try {//创建文件(根据备份文件并删除部分)JarFile jarFile = new JarFile(jarName);JarOutputStream jos = new JarOutputStream(new FileOutputStream(bakJarName));Enumeration entries = jarFile.entries();while (entries.hasMoreElements()) {JarEntry entry = (JarEntry) entries.nextElement();if (!deletes.contains(entry.getName())) {if (entry.getName().equals("com/aspose/pdf/ADocument.class")) {System.out.println("Replace:-------" + entry.getName());JarEntry jarEntry = new JarEntry(entry.getName());jos.putNextEntry(jarEntry);FileInputStream fin = new FileInputStream(replaceFile);byte[] bytes = readStream(fin);jos.write(bytes, 0, bytes.length);} else {jos.putNextEntry(entry);byte[] bytes = readStream(jarFile.getInputStream(entry));jos.write(bytes, 0, bytes.length);}} else {System.out.println("Delete:-------" + entry.getName());}}jos.flush();jos.close();jarFile.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}private static byte[] readStream(InputStream inStream) throws Exception {ByteArrayOutputStream outSteam = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = -1;while ((len = inStream.read(buffer)) != -1) {outSteam.write(buffer, 0, len);}outSteam.close();inStream.close();return outSteam.toByteArray();}
}
运行上面的主方法,破解成功后,会再同级文件夹下生成一个aspose-pdf-21.8.cracked.jar包,用这个包替换原来的aspose-pdf-21.8.jar包即可。

3、代码实现

package red.htt;import com.aspose.pdf.Document;
import com.aspose.pdf.SaveFormat;
import java.io.*;public class Demo {//放入一个pdf的路径public static void main(String[] args) throws IOException {pdf2doc("D:\\浏览器下载\\edg\\15755784550_20221130145105.pdf");}//pdf转docpublic static void pdf2doc(String pdfPath) {long old = System.currentTimeMillis();try {//新建一个word文档String wordPath=pdfPath.substring(0,pdfPath.lastIndexOf("."))+".docx";FileOutputStream os = new FileOutputStream(wordPath);
//doc是将要被转化的word文档Document doc = new Document(pdfPath);
//全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换doc.save(os, SaveFormat.DocX);os.close();
//转化用时long now = System.currentTimeMillis();System.out.println("Pdf 转 Word 共耗时:" + ((now - old) / 1000.0) + "秒");} catch (Exception e) {System.out.println("Pdf 转 Word 失败...");e.printStackTrace();}}
}
搞定,收工!!!

java实现PDF转Word(无水印无页数限制)完全开放相关推荐

  1. java 实现pdf 转word去除水印和去除页数限制

    背景 每次下载的pdf文档想转成word文档,都从网上找各种找网址,网上的网址要么存在必须要充值,要么转化效果不好等等问题.作为一个技术人员,所以想能否实现pdf转化为word文档 代码实现 1.1 ...

  2. pdf转word免费不限页数

    作为职场新人,pdf转换软件是必备的工具.很多pdf转word软件都需要收费,让我很是惆怅.但是最近发现了一个免费pdf转word在线转换工具,转换效果不错,我之前转换了一个pdf转word,转完以后 ...

  3. 如何使用手机免费将PDF转Word还不限页数

    手机如何将PDF转换成Word?有时一些PDF资料需要修改才能使用,电脑端的修改已经很复杂了,更何况手机端安装软件和使用都更困难,而且有一些PDF文档本身就是扫描版无法进行修改,那么我们就只能将PDF ...

  4. Java为 pdf、word和excel添加水印

    1. 引入依赖 <!--easyexcel--><dependency><groupId>com.alibaba</groupId><artifa ...

  5. java为PDF添加水印,图片水印和文字水印

    java为PDF添加水印,文字水印和图片水印 一个需求,下载pdf.word.excel文件时要带有水印,要求铺满.先分开,先介绍为PDF文件添加文字水印和图片水印. 所需jar包:itext-2.0 ...

  6. python获取word页数_使用Python的word文档的页数(Number of pages of a word document with Python)...

    使用Python的word文档的页数(Number of pages of a word document with Python) 有没有办法用Python有效地获得word文档(.doc,.doc ...

  7. 批量将一个或多个 Word 文件按固定页数拆分成多个 Word 文件

    概要:我们经常面对很多 Word 文档,有些 Word 文档有几百页,有时候我们希望将这些 Word 文档都按固定的页数拆分成多个 Word 文档.有没有一种简单的方法能够批量的将这些 Word 文件 ...

  8. php判断caj文件页数,CAJ转PDF有哪些免费不限页数的方法?

    原标题:CAJ转PDF有哪些免费不限页数的方法? 对于经常在知网查找并下载资料的小伙伴们,对CAJ格式的文档肯定相当熟悉了,但是如何编辑CAJ恐怕很多人都陌生吧.所以我们通常都将CAJ转成常用的PDF ...

  9. java实现PDF 转WORD

    CSDN话题挑战赛第2期 参赛话题:Java技术分享 引言 由于市场上目前的各种格式文件的转换基本上都需要会员,怎么办呢? 不走寻常路,我们是程序员 我们当然要不走寻常路了,我们要动用一些特殊手段,展 ...

最新文章

  1. 二分查找模板全面总结
  2. R语言ggplot2可视化自定义图例实战:添加自定义的图例、添加填充色的图例
  3. python学习-Django (3)
  4. WEB应用数据验证指南
  5. 二十八、事务的提交与回滚演示
  6. 三星手机com.android.settings,三星手机恢复出厂设置方法【具体步骤】
  7. localhost使用ipv4_使用 blackbox exporter 实现域名证书过期监控
  8. Java 压缩解压字符串(支持中文)
  9. 沣东新城镐京遗址规划_沣东新城房价为啥这么高?
  10. 阿里巴巴正式开源全球化OpenMessaging和ApsaraCache项目
  11. pod install pod update
  12. Stolz定理及其证明
  13. Java真的是低糖语言吗?
  14. 江波龙入选国家级专精特新“小巨人”企业
  15. vue--echarts 图标库、excel导出、面包屑组件、富文本框、地图、前端使用代理访问、监控生产环境or开发环境
  16. 职业+英语思维导图模板
  17. python自动化------问卷星刷问卷3.0版本
  18. 哪个充电宝无线充电最快?功率最大的无线充电宝推荐
  19. oracle 查询unlock,oracle account lock/unlock
  20. Mac思维导图软件推荐——MindNode 7 for Mac

热门文章

  1. Derby 和 Geronimo 使用感觉
  2. linux ipv6添加路由器,使用Linux搭建IPV6路由器(CentOS版)
  3. 华为服务器开机显示选择一个选项,win10系统频繁出现“选择一个选项”界面的解决方法...
  4. ITM Architecture/ ITM 架构
  5. 机器学习实践:非监督学习-8
  6. 证明调和级数发散的方法
  7. 如何争取APP Store推荐位
  8. 【Audio】声临其境——杜比音效介绍
  9. 外国小伙发现乌云是黑色的……
  10. 苹果开发者注册了邓白氏编码不能用,查询时提示该组织不存在怎么办?