apose-cell-22.6 excel转换pdf水印去除

很久没在CSDN发博客了,最近遇到个需求找资料很痛苦,记录下希望能帮到有需要的朋友
apose-cell-22.6无水印包下载
链接:https://pan.baidu.com/s/10ve6w77G4yl8u0T5oIgeLg?pwd=yyb4
提取码:yyb4
①、借鉴其他博客对aspose-words 21.5水印去除思路
原文博客:https://blog.csdn.net/ren7wei/article/details/116852876

搜索License类,可直接new出来单击进去
在这里插入图片描述在这里插入图片描述在这里插入图片描述

//结论:我们只需要在第一次转换pdf前,通过反射将zzZDQ.zzYAC的值修改掉,这样水印即可消除
    public static void xmlToPdf(File xmlFile, File pdfFile) throws Exception {
        Document document=new Document(xmlFile.getAbsolutePath());
        document.save(pdfFile.getAbsolutePath());
    }
 
    public static void main(String[] args) throws Exception {
        Class<?> aClass = Class.forName("com.aspose.words.zzZDQ");
        Field zzYAC = aClass.getDeclaredField("zzYAC");
        zzYAC.setAccessible(true);
 
        Field modifiersField = Field.class.getDeclaredField("modifiers");
        modifiersField.setAccessible(true);
        modifiersField.setInt(zzYAC, zzYAC.getModifiers() & ~Modifier.FINAL);
        zzYAC.set(null,new byte[]{76, 73, 67, 69, 78, 83, 69, 68});
        File xmlFile=new File("D:\\tmp\\wd.xml");
        File pdfFile=new File("D:\\tmp\\wd.pdf");
        XmlToPdfUtils.xmlToPdf(xmlFile,pdfFile);
    }

② ok,上面是其他博客的破解思路,下载自己需要的jar包并引入,我这里需要的aspose-cells-22.6.jar(用到其中的自定义纸张尺寸功能,后面会说,需要的可借鉴)

		//一切就绪,开整
		//这一步是调用授权方法
	public void test() throws Exception {
        InputStream is = this.getClass().getClassLoader().getResourceAsStream("license.xml");
        License license = new License();
        license.setLicense(is);
        Workbook wb = new Workbook("C:\\upload\\out1.xlsx");// 原始excel路径
        //因为第一个sheet是模板,所以不转换
        Worksheet ws=wb.getWorksheets().get(1);
        ws.getPageSetup().customPaperSize(6.22,2.2);
        wb.save("out1.pdf");
        //modifyExcelJar();
    }

按照第一步的思路,我们先点击进去License这个类中
在这里插入图片描述在这里插入图片描述

OK,已经找到了哪里进行了授权,接下来替换

//引入javassist
<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.28.0-GA</version>
</dependency>

//反编译和破解
//这一步是完整的jar包路径,建议做好备份
        ClassPool.getDefault().insertClassPath("D:\\\\JDK1.6\\\\lib\\\\aspose-cells-22.6.jar");
        CtClass zzZJJClass = ClassPool.getDefault().getCtClass("com.aspose.cells.k65");
        CtMethod zzZ4h = zzZJJClass.getDeclaredMethod("a");
        zzZ4h.setBody("{return 1;}");
//这一步就是将破译完的代码放在指定文件夹
        zzZJJClass.writeFile("D:\\\\JDK1.6\\");

这一步之后,你会在指定文件夹发现一个com文件夹,
将你使用的jar包拷贝到桌面上解压,然后将刚才的com文件夹复制到解压后的文件夹里面进行覆盖,然后将解压后的META-INF文件夹中 *.RSA 和 *.SF 文件删除后,重新打包,我是直接压缩工具打开jar包删除了这两个文件,并替换了新生成的k65.class文件。

大功告成,此时去项目中引入破解后的jar包,水印已经消失。

本方案仅仅用以学习和研究为目的,商用请支持正版。

excel转换为pdf自定义尺寸方法:

Workbook workbook=new Workbook("f:\\book.xlsx");
Worksheet ws=workbook.getWorksheets().get(0);
//需要自行将cm转换为inches
ws.getPageSetup().customPaperSize(1.97,5.9);
workbook.save("out1.pdf");
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Apsose.Cell是一个Java库,用于处理Excel文档。如果你想要去除Excel文档中的水印,你可以使用Apsose.Cell来实现。 首先,你需要导入Apsose.Cell的库文件到你的Java项目中。可以从Apsose官方网站上下载最新版本的Apsose.Cell库文件。 接下来,你需要使用Apsose.Cell库中的一些类和方法来操作Excel文档。你可以使用Apsose.Cell的Workbook类来打开Excel文档。 一旦打开了Excel文档,你可以使用Worksheet类来访问工作表。通过遍历工作表的各个单元格,你可以找到包含水印的单元格。 然后,你可以使用Apsose.Cell的Shape类来操作水印。可以通过遍历所有的Shape对象,找到包含水印的对象。 最后,你可以使用Shape类的remove方法来删除水印。通过调用remove方法,你可以将水印Excel文档中移除。 需要注意的是,如果你的Excel文档中有多个工作表,你需要对每个工作表进行遍历,并逐个删除水印。 总结起来,使用Apsose.Cell可以通过操作Excel文档中的单元格和形状对象,来删除水印。通过遍历工作表和形状对象,并调用相应的方法,你可以实现去除Excel文档中的水印。 ### 回答2: Apose.cell for Java 是一款强大的 Java 库,可以用来操作和处理 Excel 文档。如果想要去除 Excel 文档中的水印,可以使用 Apose.cell for Java 提供的功能进行操作。 下面是去除水印的简要步骤: 1. 首先,确保已经安装并正确引入了 Apose.cell for Java 的库文件。 2. 加载要处理的 Excel 文档,可以使用 Workbook 类的 load 方法读取文件。 3. 获取文档中的每个工作表,可以使用 Workbook 类的 getWorksheets 方法。 4. 遍历每个工作表,可以使用 WorksheetCollection 类的 foreach 方法。 5. 检查每个工作表是否包含水印,可以使用 Worksheet 类的 getPageSetup 方法来获取工作表的页面设置,通过 getPageSetup 方法返回的对象中的水印属性来进行判断。 6. 如果工作表中包含水印,使用 setPageSetup 方法将水印属性设置为 null,即可去除水印。可以通过 setPageSetup 方法的参数来实现该功能。 7. 处理完所有工作表后,保存文档,可以使用 Workbook 类的 save 方法将操作后的文档保存到指定位置。 8. 关闭文档和相关资源,释放内存空间。 需要注意的是,以上步骤仅提供了一个基本的框架,具体操作可能会因实际情况而有所不同。可以参考 Apose.cell for Java 提供的官方文档或示例代码来进行更详细和准确的操作。 总之,使用 Apose.cell for Java 可以很方便地去除 Excel 文档中的水印,通过对工作表的页面设置进行操作来实现该功能。希望以上回答能对您有所帮助!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值