我想使用itext库从java servlet中返回一个来自pdf文件的页面(以减小文件大小的下载)。 使用此代码使用iText从pdf文件中提取一个页面
try {
PdfReader reader = new PdfReader(input);
Document document = new Document(reader.getPageSizeWithRotation(page_number));
PdfSmartCopy copy1 = new PdfSmartCopy(document, response.getOutputStream());
copy1.setFullCompression();
document.open();
copy1.addPage(copy1.getImportedPage(reader, page_i));
copy1.freeReader(reader);
reader.close();
document.close();
} catch (DocumentException e) {
e.printStackTrace();
}
此代码返回的页面,但文件尺寸较大,有时等于原始文件的大小,即使它只是一个页面。
也许你有一个大的字体或每个页面使用的大图像。在这种情况下,如果在100页中丢弃99个文件,则无关紧要:该页面仍然需要字体和图像,并且PDF文件的大小不会缩小。如果您想获得更有用的答案,您必须向我们提供有关PDF的性质的更多信息。 – 2015-02-07 12:58:45
该文件的副本位于保管箱[文件链接](https://www.dropbox.com/sh/rjkw0uageilbjm0/AAAYRLUk0j0FIk0R3KLYH1Isa/1st%20and%202nd%20Year%20Materials/Anatomy/%D8%AE%D8%A7 %D9%84%D8%AF%20%D9%85%D9%8A%D9%84%D8%A7%D8%AF /%D8%A7%D9%84%D9%85%D9%86%D9% 87%D8%AC%20%D8%A7%D9%84%D9%86%D8%B8%D8%B1%D9%8A?dl = 0),大部分页面都是论文的图片。 – Ahmed 2015-02-07 13:47:32
我已经下载了abdomen.pdf。这是一个只包含图像的PDF。你为什么不提取图像并提供服务?如果您可以提供单独的图像,为什么还需要单页PDF? – 2015-02-07 13:58:18