Aspose for Java 去除水印和数量限制

用于学习,不可用于商业!

1.maven 依赖引用

 <!--word-->  
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-words</artifactId>
            <version>21.11</version>
            <classifier>jdk17</classifier>
        </dependency>
 <!--excel-->  
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-cells</artifactId>
            <version>21.11</version>
        </dependency>
 <!--pdf-->  
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-pdf</artifactId>
            <version>21.11</version>
        </dependency>

 <!--ppt-->  
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-slides</artifactId>
            <version>21.10</version>
            <classifier>jdk16</classifier>
        </dependency>
        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.28.0-GA</version>
        </dependency>
        <repositories>
            <repository>
                <id>AsposeJavaAPI</id>
                <name>Aspose Java API</name>
                <url>https://repository.aspose.com/repo/</url>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>AsposeJavaAPI</id>
                <url>https://repository.aspose.com/repo/</url>
            </pluginRepository>
        </pluginRepositories>


 2. license.xml 文件

<License>
    <Data>
        <Products>
            <Product>Aspose.Total for Java</Product>
            <Product>Aspose.Words for Java</Product>
        </Products>
        <EditionType>Enterprise</EditionType>
        <SubscriptionExpiry>20991231</SubscriptionExpiry>
        <LicenseExpiry>20991231</LicenseExpiry>
        <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
    </Data>
    <Signature>
        sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=
    </Signature>
</License>

 3.Aspose.Words for Java21.11去除水印和数量限制

3.1 添加修改方法 

 /**
     * 修改words jar包里面的校验
     */
    public static void modifyWordsJar() {
        try {
            //这一步是完整的jar包路径,选择自己解压的jar目录
            ClassPool.getDefault().insertClassPath("D:\\maven\\repo\\com\\aspose\\aspose-words\\21.11\\aspose-words-21.11-jdk17.jar");
            //获取指定的class文件对象
            CtClass zzZJJClass = ClassPool.getDefault().getCtClass("com.aspose.words.zzXDb");
            //从class对象中解析获取指定的方法
            CtMethod[] methodA = zzZJJClass.getDeclaredMethods("zzY0J");
            //遍历重载的方法
            for (CtMethod ctMethod : methodA) {
                CtClass[] ps = ctMethod.getParameterTypes();
                if (ctMethod.getName().equals("zzY0J")) {
                    System.out.println("ps[0].getName==" + ps[0].getName());
                    //替换指定方法的方法体
                    ctMethod.setBody("{this.zzZ3l = new java.util.Date(Long.MAX_VALUE);this.zzWSL = com.aspose.words.zzYeQ.zzXgr;zzWiV = this;}");
                }
            }
            //这一步就是将破译完的代码放在桌面上
            zzZJJClass.writeFile("C:\\Users\\13373\\Desktop");

            //获取指定的class文件对象
            CtClass zzZJJClassB = ClassPool.getDefault().getCtClass("com.aspose.words.zzYKk");
            //从class对象中解析获取指定的方法
            CtMethod methodB = zzZJJClassB.getDeclaredMethod("zzWy3");
            //替换指定方法的方法体
            methodB.setBody("{return 256;}");
            //这一步就是将破译完的代码放在桌面上
            zzZJJClassB.writeFile("C:\\Users\\13373\\Desktop");
        } catch (Exception e) {
            System.out.println("错误==" + e);
        }
    }

3.2 修改jar包里面的数据

为了不修改原jar包建议复制一份重命名。

1.打开jar包将桌面com文件夹覆盖到jar包com文件夹 

 2.删除jar包里面的.RSA.SF文件

3.3重新导入修改后的jar包进行测试

InputStream resourceAsStream = Demo.class.getClassLoader().getResourceAsStream("license.xml");
com.aspose.words.License license = new com.aspose.words.License();
license.setLicense(resourceAsStream);
FileOutputStream os = new FileOutputStream("C:\\Users\\13373\\Desktop\\work\\demo\\test1.pdf");
com.aspose.words.Document doc = new com.aspose.words.Document("C:\\Users\\13373\\Desktop\\work\\demo\\test1.docx");
doc.save(os, com.aspose.words.SaveFormat.PDF);
os.close();

 3.4word转html,图片转为base64类型

        InputStream resourceAsStream = Demo.class.getClassLoader().getResourceAsStream("license.xml");
        com.aspose.words.License license = new com.aspose.words.License();
        license.setLicense(resourceAsStream);
        FileOutputStream os = new FileOutputStream("D:\\test\\test1.HTML");
        com.aspose.words.Document doc = new com.aspose.words.Document("C:\\Users\\13373\\Desktop\\work\\demo\\output.docx");
        com.aspose.words.HtmlSaveOptions htmlSaveOptions = new com.aspose.words.HtmlSaveOptions(SaveFormat.HTML);
        htmlSaveOptions.setExportImagesAsBase64(true);
        doc.save(os, htmlSaveOptions);
        os.close();

4.Aspose.Cells for Java21.11去除水印和数量限制

4.1添加修改方法

 /**
     * 修改cells.jar包里面的校验
     */
    public static void modifyExcelJar() {
        try {
            //这一步是完整的jar包路径,选择自己解压的jar目录
            ClassPool.getDefault().insertClassPath("D:\\maven\\repo\\com\\aspose\\aspose-cells\\21.11\\aspose-cells-21.11.jar");
            //获取指定的class文件对象
            CtClass zzZJJClass = ClassPool.getDefault().getCtClass("com.aspose.cells.License");
            //从class对象中解析获取所有方法
            CtMethod[] methodA = zzZJJClass.getDeclaredMethods();
            for (CtMethod ctMethod : methodA) {
                //获取方法获取参数类型
                CtClass[] ps = ctMethod.getParameterTypes();
                //筛选同名方法,入参是Document
                if (ps.length == 1 && ctMethod.getName().equals("a") && ps[0].getName().equals("org.w3c.dom.Document")) {
                    System.out.println("ps[0].getName==" + ps[0].getName());
                    //替换指定方法的方法体
                    ctMethod.setBody("{a = this;com.aspose.cells.zblc.a();}");
                }
            }
            //这一步就是将破译完的代码放在桌面上
            zzZJJClass.writeFile("C:\\Users\\13373\\Desktop");

        } catch (Exception e) {
            System.out.println("错误==" + e);
        }
    }

4.2修改jar包里面的数据

为了不修改原jar包建议复制一份重命名。

1删除jar包里面的.RSA.SF文件打开jar包将桌面com文件夹覆盖到jar包com文件夹

2.删除jar包里面的.RSA.SF文件

4.3重新导入修改后的jar包进行测试

InputStream resourceAsStream = Demo.class.getClassLoader().getResourceAsStream("license.xml");
com.aspose.cells.License license = new com.aspose.cells.License();
license.setLicense(resourceAsStream);
FileOutputStream os = new FileOutputStream("C:\\Users\\13373\\Desktop\\work\\demo\\test1.html");
Workbook workbook = new Workbook("C:\\Users\\13373\\Desktop\\demo.xlsx");
workbook.save(os, SaveFormat.HTML);//设置转换文件类型并转换
os.close();

5.Aspose.PDF for Java21.11去除水印和数量限制

5.1添加修改方法

/**
     * 修改pdf jar包里面的校验
     */
    public static void modifyPDFJar() {
        try {
            //这一步是完整的jar包路径,选择自己解压的jar目录
            ClassPool.getDefault().insertClassPath("D:\\maven\\repo\\com\\aspose\\aspose-pdf\\21.11\\aspose-pdf-21.11.jar");
            //获取指定的class文件对象
            CtClass zzZJJClass = ClassPool.getDefault().getCtClass("com.aspose.pdf.l9f");
            //从class对象中解析获取所有方法
            CtMethod[] methodA = zzZJJClass.getDeclaredMethods();
            for (CtMethod ctMethod : methodA) {
                //获取方法获取参数类型
                CtClass[] ps = ctMethod.getParameterTypes();
                //筛选同名方法,入参是Document
                if (ps.length == 1 && ctMethod.getName().equals("lI") && ps[0].getName().equals("java.io.InputStream")) {
                    System.out.println("ps[0].getName==" + ps[0].getName());
                    //替换指定方法的方法体
                    ctMethod.setBody("{this.l0if = com.aspose.pdf.l10if.lf;com.aspose.pdf.internal.imaging.internal.p71.Helper.help1();lI(this);}");
                }
            }
            //这一步就是将破译完的代码放在桌面上
            zzZJJClass.writeFile("C:\\Users\\13373\\Desktop");

        } catch (Exception e) {
            System.out.println("错误==" + e);
        }
    }

5.2修改jar包里面的数据

为了不修改原jar包建议复制一份重命名。

1.打开jar包将桌面com文件夹覆盖到jar包com文件夹

2.jar包里面的.RSA.SF文件

5.3重新导入修改后的jar包进行测试

FileOutputStream os = new FileOutputStream("C:\\Users\\13373\\Desktop\\work\\demo\\test11.docx");
InputStream resourceAsStream = Demo.class.getClassLoader().getResourceAsStream("license.xml");
com.aspose.pdf.License license = new com.aspose.pdf.License();
license.setLicense(resourceAsStream);
com.aspose.pdf.Document doc = new com.aspose.pdf.Document("C:\\Users\\13373\\Desktop\\work\\demo\\test1.pdf");//加载源文件数据
doc.save(os, com.aspose.pdf.SaveFormat.DocX);//设置转换文件类型并转换
os.close();

6.Aspose.Slides for Java21.10去除水印和数量限制

6.1添加修改方法

/**
     * 修改slides.jar包里面的校验
     */
    public static void modifyPptJar() {
        try {
            //这一步是完整的jar包路径,选择自己解压的jar目录
            ClassPool.getDefault().insertClassPath("D:\\maven\\repo\\com\\aspose\\aspose-slides\\21.10\\aspose-slides-21.10-jdk16.jar");
            CtClass zzZJJClass = ClassPool.getDefault().getCtClass("com.aspose.slides.internal.of.public");
            CtMethod[] methodA = zzZJJClass.getDeclaredMethods();
            for (CtMethod ctMethod : methodA) {
                CtClass[] ps = ctMethod.getParameterTypes();
                if (ps.length == 3 && ctMethod.getName().equals("do")) {
                    System.out.println("ps[0].getName==" + ps[0].getName());
                    ctMethod.setBody("{}");
                }
            }
            //这一步就是将破译完的代码放在桌面上
            zzZJJClass.writeFile("C:\\Users\\13373\\Desktop");
        } catch (Exception e) {
            System.out.println("错误==" + e);
        }
    }

6.2修改jar包里面的数据

为了不修改原jar包建议复制一份重命名。

        1.打开jar包将桌面com文件夹覆盖到jar包com文件夹

        2.删除jar包里面的.RSA.SF文件

6.3重新导入修改后的jar包进行测试

FileOutputStream os = new FileOutputStream("C:\\Users\\13373\\Desktop\\work\\demo\\test11.pdf");
InputStream resourceAsStream = Demo.class.getClassLoader().getResourceAsStream("license.xml");
Presentation ppt = new Presentation("C:\\Users\\13373\\Desktop\\work\\1-151212210047\\IT互联网行业工作汇报PPT模板.pptx");
com.aspose.slides.License license = new com.aspose.slides.License();
license.setLicense(resourceAsStream);
ppt.save(os, com.aspose.slides.SaveFormat.Pdf);//设置转换文件类型并转换
os.close();

注:修改的jar要替换原maven引用的jar

参考文档

已处理好jar下载
无下载积分留言,我私发!!!

Aspose for Java 去除水印和数量限制

https://www.aliyundrive.com/s/VVqoFrHcoR5

提取码: dj78

  • 17
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 35
    评论
### 回答1: Aspose.Imaging for .NET是一款功能强大的图像处理库,可以在图像中去除水印。下面是使用Aspose.Imaging for .NET去除水印的步骤: 1. 导入Aspose.Imaging命名空间和相关类:首先需要导入Aspose.Imaging命名空间,以及相关类,如Image和RasterImage等。 2. 加载带有水印的图像:使用Aspose.Imaging for .NET提供的方法,加载带有水印的图像文件。可以使用Image.Load方法来加载图像。 3. 去除水印:使用Aspose.Imaging for .NET提供的API,可以使用不同的方法来去除水印。例如,可以使用RasterImage.Clear方法来清除水印区域,也可以使用ImageFilters.GaussWienerFilter方法来模糊水印区域。 4. 保存处理后的图像:在去除水印后,将处理后的图像保存到指定的输出文件中。可以使用Image.Save方法来保存图像。 以下是使用Aspose.Imaging for .NET去除水印的示例代码: ``` using Aspose.Imaging; using Aspose.Imaging.FileFormats.Tiff; using Aspose.Imaging.Filters; // 加载带有水印的图像 using (var image = Image.Load("watermarked_image.jpg")) { // 去除水印 RasterImage rasterImage = (RasterImage)image; rasterImage.Clear(new Aspose.Imaging.Rectangle(100, 100, 200, 200), Color.White); // 保存处理后的图像 image.Save("removed_watermark_image.jpg"); } ``` 以上代码假设输入的图像为"watermarked_image.jpg",去除水印后的图像将保存为"removed_watermark_image.jpg"。 通过以上步骤,你可以使用Aspose.Imaging for .NET轻松地去除图像中的水印。 ### 回答2: 在使用Aspose.Imaging for .NET去除水印时,需要按照以下步骤进行操作: 1. 加载图像文件:使用Aspose.Imaging for .NET的Image类加载包含水印的图像文件。可以通过Aspose.Imaging.FileFormats.ImagingFormats类来确定图像文件的格式。 2. 移除水印:在加载图像后,可以使用Aspose.Imaging for .NET提供的不同方法和功能来移除水印。根据水印的类型和位置,可以使用以下方法之一来去除水印: - 通过编辑图像像素来覆盖水印区域。可以使用Aspose.Imaging for .NET中的Graphics类来绘制覆盖水印的矩形或自定义形状。 - 对图像进行裁剪或缩放,以消除或隐藏水印。 - 使用Aspose.Imaging for .NET中的滤镜和修复功能,例如高斯模糊、降噪等,来减弱或模糊水印的效果。 3. 保存处理后的图像:在去除水印后,使用Aspose.Imaging for .NET的Image.Save方法将处理后的图像保存到磁盘或内存流中。可以将其保存为原始图像格式,也可以将其转换为其他格式。 需要注意的是,水印去除的效果取决于水印的复杂程度和图像质量,可能无法完全去除水印或对图像进行不可逆的修改。因此,在实际操作中,建议先备份原始图像,并使用Aspose.Imaging for .NET的测试和调整功能来获得最佳的去除水印效果。 ### 回答3: Aspose.Imaging for .NET是一种功能强大的图像处理库,可以用于去除图像中的水印。 首先,我们需要加载带有水印的图像文件。可以使用Aspose.Imaging for .NET提供的Image类来完成此操作。 然后,我们可以使用Aspose.Imaging for .NET的功能来检测并定位水印区域。可以使用Image类的FindWatermark方法来实现此功能。它将返回一个包含水印位置信息的Rectangle对象。 接下来,我们可以使用Aspose.Imaging for .NET的功能来去除水印。可以使用Image类的RemoveWatermark方法来实现此功能。它将接受水印的位置信息(即前面获取的Rectangle对象)作为参数,然后从图像中删除水印。 最后,我们可以保存处理后的图像文件。可以使用Image类的Save方法将图像保存到指定的文件路径中。 总结来说,通过加载图像文件,检测水印位置,去除水印,并保存处理后的图像文件,我们可以使用Aspose.Imaging for .NET来轻松地去除水印。这个过程很简单,可以通过几行代码来完成。
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值