aspose-words-18.6 java版使用

1.用到的工具有:JByteMod、javassist 可在文章最下方下载

2.下载原版aspose-words-18.6-jdk16.jar

   使用执行JByteMod-1.8.0.jar反编译其源码查看其注册文件的加载类

package com.aspose.words;
import asposewobfuscated.*;
import java.io.*;
public class License
{
    @Deprecated
    public boolean getIsLicensed() {
        return zzZLX.zzZJT() == 1;
    }
    
    public boolean isLicensed() {
        return zzZLX.zzZJT() == 1;
    }
    
    public void setLicense(final String licenseName) throws Exception {
        if (licenseName == null) {
            throw new NullPointerException("licenseName");
        }
        new zzZLX().zzY(licenseName, zz2W.zzA3());
    }
    
    public void setLicense(final InputStream stream) throws Exception {
        if (stream == null) {
            throw new NullPointerException("stream");
        }
        new zzZLX().zzX(stream);
    }
}

可见主要的处理类为zzZLX,反编译后找到关键代码如下

    private static void zzZ(final Node node, final Node node2) throws Exception {
        byte[] bytes;
        if (node != null) {
            final StringBuilder sb;
            zzZ(sb = new StringBuilder(), node);
            bytes = sb.toString().getBytes("UTF-16LE");
        }
        else {
            bytes = new byte[0];
        }
        byte[] decode;
        if (node2 != null) {
            decode = zz35.decode(node2.getFirstChild().getNodeValue());
        }
        else {
            decode = new byte[0];
        }
        final Signature instance = Signature.getInstance("SHA1withRSA");
        instance.initVerify(KeyFactory.getInstance("RSA").generatePublic(new RSAPublicKeySpec(new BigInteger(1, zzZg(zz35.decode("0nRuwNEddXwLfXB7pw66G71MS93gW8mNzJ7vuh3Sf4VAEOBfpxtHLCotymv1PoeukxYe31K441Ivq0Pkvx1yZZG4O1KCv3Omdbs7uqzUB4xXHlOub4VsTODzDJ5MWHqlRCB1HHcGjlyT2sVGiovLt0Grvqw5+QXBuinoBY0suX0="))), new BigInteger(1, zzZg(zz35.decode("AQAB"))))));
        instance.update(bytes);
        if (!instance.verify(decode)) {
            throw new IllegalStateException("The signature is invalid.");
        }
    } 

可见这是使用rsa加密验证许可证的合法性,只需要屏蔽验证过程许可证即有效,使用javassist进行代码修改:

    public static void changeMethod() throws Exception {
        ClassPool.getDefault().insertClassPath(
                "D:/aspose-words-18.6-jdk16.jar");
        CtClass c2 = ClassPool.getDefault()
                .getCtClass("com.aspose.words.zzZLX");
        CtMethod[] ms = c2.getDeclaredMethods();
        for (CtMethod c : ms) {
            System.out.println(c.getName());
            CtClass[] ps = c.getParameterTypes();
            for (CtClass cx : ps) {
                System.out.println("\t" + cx.getName());
            }
 
            if (c.getName().equals("zzZ") && ps.length == 2
                    && ps[0].getName().equals("org.w3c.dom.Node")
                    && ps[1].getName().equals("org.w3c.dom.Node")) {
                System.out.println("find it!");
                c.insertBefore("{return;}");
            }
 
        }
        c2.writeFile();
 
    } 

以上可生成zzZLX.class文件,放入jar文件中替换,为防止文件指纹校验,删除jar文件中的META-INF文件夹

下面生成一个许可文件com.aspose.words.lic_2999.xml:

<License>
  <Data>
    <Products>
      <Product>Aspose.Words for Java</Product>
    </Products>
    <EditionType>Enterprise</EditionType>
    <SubscriptionExpiry>29991231</SubscriptionExpiry>
    <LicenseExpiry>29991231</LicenseExpiry>
    <SerialNumber>---</SerialNumber>
  </Data>
  <Signature>---</Signature>
</License> 

 

为方便使用,我将此文件放入了jar文件根目录下

以下为使用代码:

package test_fileconvert;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
 
import com.aspose.words.Document;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
 
public class Doc2Pdf {
 
    public static void main(String[] args) throws Exception {
        doc2pdf("e:/pjtemp/f_new.docx", "e:/pjtemp/f_new.pdf");
    }
 
    public static boolean getLicense() throws Exception {
        boolean result = false;
        try {
 
            InputStream is = com.aspose.words.Document.class
                    .getResourceAsStream("/com.aspose.words.lic_2999.xml");
            License aposeLic = new License();
            aposeLic.setLicense(is);
            result = true;
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        }
        return result;
    }
 
    public static void doc2pdf(String inPath, String outPath) throws Exception {
        if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档有水印
            throw new Exception("com.aspose.words lic ERROR!");
        }
 
        System.out.println(inPath + " -> " + outPath);
 
        try {
            long old = System.currentTimeMillis();
            File file = new File(outPath);
            FileOutputStream os = new FileOutputStream(file);
            Document doc = new Document(inPath); // word文档
            // 支持RTF HTML,OpenDocument, PDF,EPUB, XPS转换
            doc.save(os, SaveFormat.PDF);
            long now = System.currentTimeMillis();
            System.out.println("convert OK! " + ((now - old) / 1000.0) + "秒");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意:此教程及下载文件只允许学习使用,不得用于商业用途,请购买授权正版 aspose官网

下载:

aspose-words-18.6-jdk16-crack.jar
JByteMod-Beta-master编译版
jboss-javassist-javassist-rel_3_23_0_ga 

打包下载地址(包含上面三个文件):打包下载 地址

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: aspose-cells-18.6.jar是Aspose.Cells的Java组件,可以用于读取、写入、格式化和操作Microsoft Excel文件。该组件提供了广泛的API来处理Excel文档,包括报告生成、逐步计算、图表、格式控制和数据分析。使用aspose-cells-18.6.jar可以在Java应用程序中轻松地导入、导出和编辑Excel文档。用户可以从官方网站上下载aspose-cells-18.6.jar并按照Aspose.Cells开发文档中的指示进行使用。此外,Aspose还提供了许多其他开发人员工具和组件,包括Aspose.WordsAspose.Pdf、Aspose.Slides、Aspose.Email、Aspose.BarCode等等。这些组件都可以帮助开发人员更轻松地创建、编辑和处理各种文件格式。 ### 回答2: Aspose.Cells是一种用于Java平台的Excel处理库,能够帮助开发人员轻松地读取、写入和操作Excel文档。使用Aspose.Cells库,开发人员可以创建、修改和删除Excel文档中的单元格,样式、图表和图片等多种元素。Aspose.Cells具有出色的性能和功能,因此,许多企业和个人都选择使用这个库来处理Excel文档。 要下载Aspose.Cells 18.6.jar,可以从Aspose官方网站或一些开发论坛下载。在完成下载后,将jar文件添加到您的项目中即可开始使用该库。 Aspose.Cells 18.6.jar是Aspose.Cells库的一个较新本,具有许多新的特性和改进。这个本修复了许多bug,增强了性能和稳定性,同时添加了新功能,如自定义函数和超链接等。因此,如果您正在开发一个需要处理Excel文档的Java应用程序,下载Aspose.Cells 18.6.jar是一个很好的选择。 ### 回答3: aspose-cells-18.6.jar是一个Java Library,它提供了许多功能强大的处理Excel文档的工具和API。这个Library包含了大量的API和类,可以让Java开发者创建、编辑、处理、渲染和转换Excel文档,包括xlsx、xls、xlsb、xlsm、xltx、xltm、csv、tsv、odf、html、pdf和图片格式等。 下载aspose-cells-18.6.jar,可以通过官网或者Maven仓库获得。官网下载需要注册并购买正授权,而Maven仓库提供了免费的开源本和付费的商业本。 使用aspose-cells-18.6.jar,需要将其导入Java项目的classpath中,并在代码中调用相应的API和类。比如,可以用Workbook类打开、创建、保存Excel文档,并通过Cell类对单元格进行操作;也可以用Chart类绘制Excel图表,并用PivotTable类创建数据透视表等。 总的来说,aspose-cells-18.6.jar是一个方便、实用、高效的Java Library,对于需要处理Excel文档的Java开发者来说,它是一个非常好的选择。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值