如何使用iText在JSP中显示有限数量的PDF文件页面?

时间:2011-08-27 07:14:18

标签: java jsp servlets itext

我必须在JSP页面中显示PDF文档。 PDF文档有25页,但我想只显示10页的PDF文件。如何借助iText实现这一目标?

1 个答案:

答案 0 :(得分:2)

假设您已有PDF文件。

您可以使用PdfStamperPdfCopy对PDF进行切片:

PdfReader reader = new PdfReader("THE PDF SOURCE");

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Document document = new Document();
PdfCopy copy = new PdfCopy(document, outputStream);
document.open();
PdfStamper stamper = new PdfStamper(reader, outputStream);
for (int i = 1; i < reader.getNumberOfPages(); i++) {
   // Select what pages you need here
   PdfImportedPage importedPage = stamper.getImportedPage(reader, i);
   copy.addPage(importedPage);
}
copy.freeReader(reader);
outputStream.flush();
document.close();

// Now you can send the byte array to your user
// set content type to application/pdf 

至于将pdf发送到显示器,取决于你显示它的方式。输出代码末尾的输出流将包含您在循环中复制的页面,在示例中它是所有页面。

这本质上是一个新的PDF文件,但在内存中。如果每次都是同一文件的10页,您可以考虑将其保存为文件。