该文将从以下两方面介绍如何在java中对pdf 文档进行压缩:
- 压缩文档内容
- 压缩文档中的图片
压缩文档内容
import com.spire.pdf.*;
public class compresspdf {
public static void main(string[] args) {
string inputfile = "sample.pdf";
string outputfile = "output/compresspdfcontent.pdf";
pdfdocument document = new pdfdocument();
document.loadfromfile(inputfile);
document.getfileinfo().setincrementalupdate(false);
document.setcompressionlevel(pdfcompressionlevel.best);
document.savetofile(outputfile, fileformat.pdf);
document.close();
}
}
压缩文档中的图片
首先提取原pdf文档中的图片,通过降低图片质量,使图片变小,然后用缩小后的图片替换原文档中的图片来减少pdf文档的大小
import com.spire.pdf.*;
import com.spire.pdf.exporting.pdfimageinfo;
import com.spire.pdf.graphics.pdfbitmap;
public class compresspdf {
public static void main(string[] args) {
string inputfile = "sample.pdf";
string outputfile = "output/compresspdfimage.pdf";
pdfdocument document = new pdfdocument();
document.loadfromfile(inputfile);
document.getfileinfo().setincrementalupdate(false);
for (int i = 0; i < document.getpages().getcount(); i ) {
pdfpagebase page = document.getpages().get(i);
pdfimageinfo[] images = page.getimagesinfo();
if (images != null && images.length > 0)
for (int j = 0; j < images.length; j ) {
pdfimageinfo image = images[j];
pdfbitmap bp = new pdfbitmap(image.getimage());
bp.setquality(20);
page.replaceimage(j, bp);
}
}
document.savetofile(outputfile, fileformat.pdf);
document.close();
}
}