国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android修行手冊 - 文檔插件Aspose的jar包去除所有限制學習版

這篇具有很好參考價值的文章主要介紹了Android修行手冊 - 文檔插件Aspose的jar包去除所有限制學習版。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

專欄分享
  • 點擊跳轉=>Unity3D特效百例
  • 點擊跳轉=>案例項目實戰(zhàn)源碼
  • 點擊跳轉=>游戲腳本-輔助自動化
  • 點擊跳轉=>Android控件全解手冊
  • 點擊跳轉=>Scratch編程案例

??關于作者

眾所周知,人生是一個漫長的流程,不斷克服困難,不斷反思前進的過程。在這個過程中會產(chǎn)生很多對于人生的質疑和思考,于是我決定將自己的思考,經(jīng)驗和故事全部分享出來,以此尋找共鳴 ?。?!
專注于Android/Unity和各種游戲開發(fā)技巧,以及各種資源分享(網(wǎng)站、工具、素材、源碼、游戲等)
有什么需要歡迎私我,交流群讓學習不再孤單。

aspose-pdf jar,熬夜再戰(zhàn)Android系列,android,jar,學習,bug,android studio

??實踐過程

前段時間研究騰訊的TBS離線,雖然搞出來了,但是在學習過程中也發(fā)現(xiàn)了另一個文檔內(nèi)容,也就是Aspose。還不錯,也挺全面,不僅支持的文檔類型非常多,而且在各種設備上都有對應的sdk。
分為免費版和付費版,其實針對大部分情況免費版完全夠用了,只是免費版有水印,也有長度數(shù)量限制。我們就學習下整個過程。
aspose-pdf jar,熬夜再戰(zhàn)Android系列,android,jar,學習,bug,android studio

??思路分析

思路?哈哈哈,不寫了,相信很多人也不關心這個,只關心最終結果。我們直接看實際操作。
注:不保證所有版本通用。但思路是setLicense方法里的注冊方法進行修改。

 com.aspose.pdf.License pdfLicense=new com.aspose.pdf.License();
 com.aspose.words.License wordsLicense=new com.aspose.words.License();
 com.aspose.slides.License slidesLicense = new com.aspose.slides.License();
 com.aspose.cells.License cellsLicense = new com.aspose.cells.License();
 //請點擊這里的setLicense方法進入查看源碼,不同版本對words 的破解方法名不一樣,但道理差不多
 pdfLicense.setLicense("");
 wordsLicense.setLicense("");
 slidesLicense.setLicense("");
 cellsLicense.setLicense("");

??動手操作

需要IntelliJ IDEA工具,然后創(chuàng)建一個新的java項目。
首先你需要拿到Aspose的jar包,一共四個,這四個包含pdf的,word的,excel的,ppt的。同時必須需要javassist的包。
方式一:你可以自行去官方下載: Aspose ,下載完放到本地lib下,然后利用本地記在的方式
aspose-pdf jar,熬夜再戰(zhàn)Android系列,android,jar,學習,bug,android studio

<!--  aspose 文檔操作工具包,項目本地lib目錄引入  -->
<dependency><!--word-->
     <groupId>com.aspose</groupId>
     <artifactId>aspose-words</artifactId>
     <scope>system</scope>
     <systemPath>${basedir}/lib/aspose-words-21.1.0-jdk17.jar</systemPath>
 </dependency>
 <dependency><!--pdf-->
     <groupId>com.aspose</groupId>
     <artifactId>aspose-pdf</artifactId>
     <scope>system</scope>
     <systemPath>${basedir}/lib/aspose-pdf-21.8.jar</systemPath>
 </dependency>
 <dependency><!--excel-->
     <groupId>com.aspose</groupId>
     <artifactId>aspose-cells</artifactId>
     <scope>system</scope>
     <systemPath>${basedir}/lib/aspose-cells-21.8.jar</systemPath>
 </dependency>
 <dependency><!--pptx-->
     <groupId>com.aspose</groupId>
     <artifactId>aspose-slides</artifactId>
     <scope>system</scope>
     <systemPath>${basedir}/lib/aspose-slides-21.8-jdk16.jar</systemPath>
 </dependency>
 <dependency><!--aspose的jar破解工具-->
     <groupId>org.javassist</groupId>
     <artifactId>javassist</artifactId>
     <version>3.20.0-GA</version>
 </dependency>

方式二:或者利用IntelliJ IDEA動態(tài)依賴,依賴方式:
在pom.xml配置aspose的jar包倉庫

<repositories>
        <repository>
            <id>AsposeJavaAPI</id>
            <name>Aspose Java API</name>
            <url>https://repository.aspose.com/repo/</url>
        </repository>
    </repositories>

然后分別加對應的依賴并刷新pom文件進行下載:

<dependency>
	<!--word-->
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>21.11</version>
	<classifier>jdk17</classifier>
</dependency>
 <dependency>
 	<!--pdf-->
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.8</version>
 </dependency>
 <dependency>
 	<!--excel-->
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.8</version>
 </dependency>
 <dependency>
 	<!--pptx-->
    <groupId>com.aspose</groupId>
    <artifactId>aspose-slides</artifactId>
    <version>21.8</version>
	<classifier>jdk16</classifier>
 </dependency>
 <dependency>
 	<!--jar破解工具-->
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.20.0-GA</version>
 </dependency>
slides-21.8-版本學習
//傳遞的是你的jar本地絕對路徑,如“D:\\”
private static void modifyPptJar(String jarName) {
    try {
        //這一步是完整的jar包路徑,選擇自己解壓的jar目錄
        ClassPool.getDefault().insertClassPath(jarName);
        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(Desktop);
    } catch (Exception e) {
        System.out.println("錯誤==" + e);
    }
}
words-21.11版本學習
//傳遞的是你的jar本地絕對路徑,如“D:\\”
private static void crackAsposeWordsJar(String jarName){
        try {
            //這一步是完整的jar包路徑,選擇自己解壓的jar目錄
            ClassPool.getDefault().insertClassPath(jarName);
            //獲取指定的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(Desktop);
            //獲取指定的class文件對象
            CtClass zzZJJClassB = ClassPool.getDefault().getCtClass("com.aspose.words.zzYKk");
            //從class對象中解析獲取指定的方法
            CtMethod methodB = zzZJJClassB.getDeclaredMethod("zzWy3");
            //替換指定方法的方法體
            methodB.setBody("{return 256;}");
            //這一步就是將破譯完的代碼放在桌面上
            zzZJJClassB.writeFile(Desktop);
        } catch (Exception e) {
            System.out.println("錯誤==" + e);
        }
    }
cells-21.8版本學習
//傳遞的是你的jar本地絕對路徑,如“D:\\”
public static void crackAsposeCells(String JarPath) throws NotFoundException,CannotCompileException, IOException {
    // 這個是得到反編譯的池
    ClassPool pool = ClassPool.getDefault();
    // 取得需要反編譯的jar文件,設定路徑
    pool.insertClassPath(JarPath);
    CtClass ctClass = pool.get("com.aspose.cells.License");
    CtMethod method_isLicenseSet = ctClass.getDeclaredMethod("isLicenseSet");
    method_isLicenseSet.setBody("return true;");
    CtMethod method_setLicense = ctClass.getDeclaredMethod("setLicense");
    method_setLicense.setBody("{    a = new com.aspose.cells.License();\n" +
            "    com.aspose.cells.zbkl.a();}");
    CtMethod methodL = ctClass.getDeclaredMethod("l");
    methodL.setBody("return new java.util.Date(Long.MAX_VALUE);");

    ctClass.writeFile(Desktop);
}
pdf-21.8版本學習
//傳遞的是你的jar本地絕對路徑,如“D:\\”
private static void crackAsposePdfJar(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")) {
                //源碼ADocument類的這個方法限制頁數(shù):
                // static boolean lI(ADocument var0, int var1) {
                //        return !lb() && !lj() && !var0.lt() && var1 > 4;
                //    }
                // 最多只能轉換4頁,處理返回false,無限制頁數(shù)
                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;
            }
        }
        //修改完,把類的輸出到指定目錄(桌面下)
		ctClass.writeFile(Desktop);
    } catch (NotFoundException e) {
        e.printStackTrace();
    } catch (CannotCompileException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

上面執(zhí)行完畢之后,會對應的生成新的jar文件,然后利用壓縮包打開這個jar文件,找到這倆文件

META-INF/37E3C32D.SF
META-INF/37E3C32D.RSA

如果有則刪除,如果沒有不用管。接著創(chuàng)建個license.xml的文件放到resources目錄下

<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>
FileInputStream fis = new FileInputStream("你存放的license.xml路徑");
License license=new License();
license.setLicense(fis);

至此去除了水印和頁數(shù)限制。

??其他

??作者:小空和小芝中的小空
??轉載說明-務必注明來源:https://zhima.blog.csdn.net/
??這位道友請留步??,我觀你氣度不凡,談吐間隱隱有王者霸氣??,日后定有一番大作為???。。∨赃呌?strong>點贊??收藏??今日傳你,點了吧,未來你成功??,我分文不取,若不成功??,也好回來找我。

溫馨提示點擊下方卡片獲取更多意想不到的資源。
aspose-pdf jar,熬夜再戰(zhàn)Android系列,android,jar,學習,bug,android studio文章來源地址http://www.zghlxwxcb.cn/news/detail-542476.html

到了這里,關于Android修行手冊 - 文檔插件Aspose的jar包去除所有限制學習版的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Android修行手冊 - 使用ViewPager2實現(xiàn)畫廊效果

    Android修行手冊 - 使用ViewPager2實現(xiàn)畫廊效果

    Unity3D特效百例 案例項目實戰(zhàn)源碼 Android-Unity實戰(zhàn)問題匯總 游戲腳本-輔助自動化 Android控件全解手冊 再戰(zhàn)Android系列 Scratch編程案例 軟考全系列 Unity3D學習專欄 藍橋系列 ChatGPT和AIGC 專注于 Android/Unity 和各種游戲開發(fā)技巧,以及 各種資源分享 (網(wǎng)站、工具、素材、源碼、游戲等

    2024年02月22日
    瀏覽(23)
  • Android修行手冊-多路USB外接攝像頭

    Android修行手冊-多路USB外接攝像頭

    點擊跳轉=Unity3D特效百例 點擊跳轉=案例項目實戰(zhàn)源碼 點擊跳轉=游戲腳本-輔助自動化 點擊跳轉=Android控件全解手冊 點擊跳轉=Scratch編程案例 點擊跳轉=軟考全系列 專注于 Android/Unity 和各種游戲開發(fā)技巧,以及 各種資源分享 (網(wǎng)站、工具、素材、源碼、游戲等) 有什么需要歡

    2024年02月07日
    瀏覽(23)
  • Android修行手冊-基礎優(yōu)化系列圖片篇,ios音視頻面試內(nèi)容

    Android修行手冊-基礎優(yōu)化系列圖片篇,ios音視頻面試內(nèi)容

    圖片款=(480/480)*400=400 占用內(nèi)存為300*400*4=480000 那么它占用內(nèi)存為什么是變化的? Android會先解析圖片文件本身的數(shù)據(jù)格式,然后還原成Bitmap對象,Bitmap的大小就跟上面的計算方式相關聯(lián)。 再舉例1080*452的png圖片,圖片占用存儲空間大小為56kb,內(nèi)存如圖: 上圖一目了然,不

    2024年04月27日
    瀏覽(45)
  • Android修行手冊 - 陰影效果的幾種實現(xiàn)以及一些特別注意點

    Android修行手冊 - 陰影效果的幾種實現(xiàn)以及一些特別注意點

    Unity3D特效百例 案例項目實戰(zhàn)源碼 Android-Unity實戰(zhàn)問題匯總 游戲腳本-輔助自動化 Android控件全解手冊 再戰(zhàn)Android系列 Scratch編程案例 軟考全系列 Unity3D學習專欄 藍橋系列 ChatGPT和AIGC 專注于 Android/Unity 和各種游戲開發(fā)技巧,以及 各種資源分享 (網(wǎng)站、工具、素材、源碼、游戲等

    2024年04月10日
    瀏覽(100)
  • Android修行手冊-實現(xiàn)利用POI將圖片插入到Excel中(文末送書)

    Android修行手冊-實現(xiàn)利用POI將圖片插入到Excel中(文末送書)

    Unity3D特效百例 案例項目實戰(zhàn)源碼 Android-Unity實戰(zhàn)問題匯總 游戲腳本-輔助自動化 Android控件全解手冊 再戰(zhàn)Android系列 Scratch編程案例 軟考全系列 Unity3D學習專欄 藍橋系列 ChatGPT和AIGC 專注于 Android/Unity 和各種游戲開發(fā)技巧,以及 各種資源分享 (網(wǎng)站、工具、素材、源碼、游戲等

    2024年02月05日
    瀏覽(23)
  • 開發(fā)Android原生插件,引入自己打的jar報,編譯報 Unsupported class file major version 61

    “Unsupported class file major version 61” 錯誤的原因是由于你自己大的jar包當時是用的Java 17打包的,因為在 Java 中,每個主要版本都有一個對應的 major version 值。例如,Java 8 的 major version 值為 52,Java 9 的 major version 值為 53,以此類推。Java 17 的 major version 值為 61。 解決這個問題,

    2024年02月09日
    瀏覽(29)
  • 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor 引入 | ProductFlavor 參考文檔地址 )

    【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor 引入 | ProductFlavor 參考文檔地址 )

    Android Plugin DSL Reference 參考文檔 : 文檔主頁 : ?Android Plugin 2.3.0 DSL Reference android 模塊配置文檔 : ?AppExtension - Android Plugin 2.3.0 DSL Reference ProductFlavor 文檔 : ?ProductFlavor - Android Plugin 2.3.0 DSL Reference 上一篇博客介紹了 Extension 擴展類型 , AppExtension 下文檔參考?AppExtension - Android Plug

    2024年02月03日
    瀏覽(19)
  • 數(shù)據(jù)截取處理、富文本去除所有標簽

    前提:在做項目中有個需求是填寫表單后生成一份文檔,文檔可以編輯、保存。 這部分用富文本處理了,涉及到的邏輯就是對象--富文本標簽形式 在給后端傳的數(shù)據(jù)格式再把富文本標簽形式--對象形式。 涉及到文字,圖片、表格,以及圖片表格的標題。 ?item就是要處理的字

    2024年01月22日
    瀏覽(17)
  • 借助文檔控件Aspose.Words,將 Word DOC/DOCX 轉換為 TXT

    借助文檔控件Aspose.Words,將 Word DOC/DOCX 轉換為 TXT

    在文檔處理領域,經(jīng)常需要將 Word 文檔轉換為更簡單的純文本格式。無論是出于數(shù)據(jù)提取、內(nèi)容分析還是兼容性原因,將 Word(.doc、.docx)文件轉換為純文本(.txt)的能力對于開發(fā)人員來說都是一項寶貴的技能。在這篇博文中,我們將探討如何在 C# 應用程序中將 Word 文檔轉換

    2024年01月19日
    瀏覽(26)
  • JS 去除字符串中所有標點符號

    JS 去除字符串中所有標點符號

    直接上代碼了

    2024年02月06日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包