只需要导入的JAR包后几行代码就可以搞定转成PDF的问题,再转成SVG还是PNG就有很多的方法去使用了。可惜这个工具是要花钱买执照验证才能用正版,从网上找到的JAR包都太过古老,只好参考破解字的方法来破解幻灯片。
更多阅读阅读Aspose功能请参考阅读的Aspose官网
import com.aspose.slides.License; import com.aspose.slides.Presentation; import com.aspose.slides.SaveFormat; import com.aspose.words.Document; import java.io.InputStream; /** * @description: * @author: ezio * @date: */ public class Testaspose { private static InputStream license; public static void main(String[] args) throws Exception { // 验证License if (!getLicense()) { return; } Presentation pres = new Presentation("D://2.pptx"); pres.save("D://2.pdf", SaveFormat.Pdf); Document doc = new Document( "D://1.doc"); doc.save("D://1.pdf"); } public static boolean getLicense() { boolean result = false; try { license = Testaspose.class.getClassLoader().getResourceAsStream("\\license.xml");// license路径 License aposeLic = new License(); aposeLic.setLicense(license); result = true; } catch (Exception e) { e.printStackTrace(); } return result; }
使用的阅读Aspose工具的瓶子包前需要破解验证码。
破解工具JByteMode和jboss-javassist
有关于aspose.words的破解可以尝试:https://blog.csdn.net/csdnsevenn/article/details/81713727
参考之前的大神破解的话来分析aspose.slides
找到包com.aspose.slides;内的类许可证
再根据以下方法
public void setLicense(final InputStream stream)抛出AsposeLicenseException {
try {
InputStream inputStream = null;
if(stream!= null){
final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
final byte [] array = new byte [1024];
int read;
while((read = stream.read(array))> 0){
byteArrayOutputStream.write(array,0,read);
}
byteArrayOutputStream.flush();
inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
}
新的回报()做(的inputStream)。
}
catch(IOException ex){
throw new InvalidOperationException(“许可证流不可用于阅读”);
}
}
找到package.com.aspose.slides.internal.ld; 内的do
得出关键验证方法
private static void do(final Node node,final Node node2){
PublicKey generatePublic = null;
尝试{
generatePublic = KeyFactory.getInstance(“RSA”)。generatePublic(void.do());
}
catch(Exception ex){
new return.return $ 17()。do(new return.return $ 16()。if,ex);
}
try {
final byte [] bytes =((node!= null)?do(node):“”)。getBytes(“UTF-16LE”);
final byte [] do1 = com.aspose.slides.internal.ld.try.do((node2!= null)?node2.getFirstChild()。getNodeValue():“”);
final Signature instance = Signature.getInstance(“SHA1withRSA”);
instance.initVerify(generatePublic);
instance.update(字节);
if(!instance.verify(do1)){
new return.return $ 19()。do(new return.return $ 18()。for);
}
}
赶上(例外EX2){
新return.return $ 21()做(新return.return $ 20()INT,EX2);
}
}
在此之后使用了一种很奇怪的方法来替换原本的JAR包里的类文件:
1.用的的winrar来解压原本Aspose-18.7-jdk16.jar文件到文件夹
2.用的jboss-Javassist是将上面的关键方法内的语句删除,另存为类文件并替换原jar包中的文件
3.删除MATE-INF文件夹,这个文件夹中的文件是用来验证的JAR包是否被修改。
4.用的winrar的压缩文件夹成zip文件,再将后缀名转成jar即可替换原本的jar包来使用
注:字的许可和幻灯片的许可不能通用,使用时需要分别验证
注:使用的Aspose转成图片后字体异常是因为电脑中的控制面板 - >字体中缺少该字体,自行下载安装可以解决这个问题。但是会出现排版与office看起来不符合的问题,因为时间原因我只找到不同的中文字体显示的大小和office不同这一点。还等大神出手指点迷津。
破解版jar包下载地址:https://download.csdn.net/download/ezio9527/10619841
破解工具下载地址:https://download.csdn.net/download/ezio9527/10619831