java - iTextを使用してJSPでPDFファイルの限られた数のページを表示する方法は?

java jsp servlets itext

JSPページにPDF文書を表示する必要があります。 PDF文書は25ページありますが、PDFファイルを10ページだけ表示したいと思います。 iTextを使用してこれをどのように実現できますか?
答え
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ページである場合は、ファイルとして保存することを検討してください。
関連記事

java - サーバー側のJax-rs呼び出しをプレフィックスのないネイティブファイルと混在させる方法は?

java - プリミティブのJavaジェネリックメソッド

java - Stripes Frameworkの会話スコープ

java - AspectJでメソッドを注釈付き引数と一致させる方法

java - 金額をDoubleとして格納しますが、BigDecimalを使用して値を計算します

java - Java(Clojure)から書き込み、Paraviewで読み取ることができるデータ形式は何ですか?

java - MATLAB Javaクラスパスの問題

java - 2つの基準をHibernate ORする

java - コンソールJavaアプリケーションの一般的な統合テストフレームワークはありますか?

java - Java SEを使用してXMLノードを削除する