包下载 : http://download.csdn.net/download/ahgaoyong/9374140
package com.demo;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import com.aspose.pdf.Document;
import com.aspose.pdf.HtmlSaveOptions;
import com.aspose.pdf.HtmlSaveOptions.CssSavingInfo;
import com.aspose.pdf.HtmlSaveOptions.CssSavingStrategy;
import com.aspose.pdf.HtmlSaveOptions.CssUrlMakingStrategy;
import com.aspose.pdf.HtmlSaveOptions.CssUrlRequestInfo;
import com.aspose.pdf.HtmlSaveOptions.ResourceSavingStrategy;
import com.aspose.pdf.License;
import com.aspose.pdf.SaveOptions.ResourceSavingInfo;
/**
*
* 由于ASPOSE比较吃内存,操作大一点的文件就会堆溢出,所以请先设置好java虚拟机参数:-Xms1024m -Xmx1024m(参kao值)<br>
*
* @author Spark
*
*/
public class TestPdf {
private static InputStream license;
private static InputStream pdf;
/**
* 获取license
*
* @return
*/
public static boolean getLicense() {
boolean result = false;
try {
license = TestPdf.class.getClassLoader().getResourceAsStream("\\license.xml");// license路径
pdf = TestPdf.class.getClassLoader().getResourceAsStream("\\人人都是产品经理.pdf");// 原始pdf路径
License aposeLic = new License();
aposeLic.setLicense(license);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
*
* @param args
*/
public static void main(String[] args) {
// 验证License
if (!getLicense()) {
return;
}
try {
long old = System.currentTimeMillis();
Document pdfDocument = new Document(pdf);
File file = new File("D:\\d\\test.html");// 输出路径
FileOutputStream fileOS = new FileOutputStream(file);
HtmlSaveOptions options = new HtmlSaveOptions();
options.CustomResourceSavingStrategy = new ResourceSavingStrategy() {
@Override
public String invoke(ResourceSavingInfo arg0) {
try {
File file = new File("D:\\d\\"+arg0.SupposedFileName);// 输出路径
byte[] b =IOUtils.toByteArray(arg0.ContentStream.toInputStream());
FileOutputStream fileOS = new FileOutputStream(file);
fileOS.write(b);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return arg0.SupposedFileName;
}
};
options.CustomCssSavingStrategy = new CssSavingStrategy() {
@Override
public void invoke(CssSavingInfo arg0) {
try {
File file = new File(arg0.SupposedURL);// 输出路径
byte[] b =IOUtils.toByteArray(arg0.ContentStream.toInputStream());
FileOutputStream fileOS = new FileOutputStream(file);
fileOS.write(b);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
options.CustomStrategyOfCssUrlCreation = new CssUrlMakingStrategy() {
@Override
public String invoke(CssUrlRequestInfo arg0) {
return "D:\\d\\test.css";
}
};
pdfDocument.save(fileOS, options);
long now = System.currentTimeMillis();
System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒\n\n" + "文件保存在:" + file.getPath());
} catch (Exception e) {
e.printStackTrace();
}
}
}