クラス AbstractPdfStamperView

実装されたすべてのインターフェース:
AwareBeanNameAwareInitializingBeanApplicationContextAwareServletContextAwareView

public abstract class AbstractPdfStamperView extends AbstractUrlBasedView
AcroForm を使用して既存のドキュメントを操作する PDF ビューの抽象スーパークラス。アプリケーション固有のビュークラスは、このクラスを継承して PDF フォームをモデルデータとマージします。

このビューの実装では、Bruno Lowagie の iText API が使用されます。オリジナルの iText 2.1.7 およびそのフォーク OpenPDF で動作することが知られています。OpenPDF は積極的に保守され、信頼できない PDF コンテンツの重要な脆弱性を修正するため、強くお勧めします

提案と元のプロトタイプを提供してくれた Bryant Larsen に感謝します。

導入:
2.5.4
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • AbstractPdfStamperView

      public AbstractPdfStamperView()
  • メソッドの詳細

    • generatesDownloadContent

      protected boolean generatesDownloadContent()
      クラスからコピーされた説明: AbstractView
      このビューがダウンロードコンテンツ(通常は PDF ファイルや Excel ファイルなどのバイナリコンテンツ)を生成するかどうかを返します。

      デフォルトの実装は false を返します。通常、レスポンス OutputStream を介して、クライアント側で一時キャッシュを必要とするダウンロードコンテンツを生成していることがわかっている場合、サブクラスはここで true を返すことが推奨されます。

      オーバーライド:
      クラス AbstractViewgeneratesDownloadContent 
      関連事項:
    • renderMergedOutputModel

      protected final void renderMergedOutputModel(MapSE<StringSE,ObjectSE> model, HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE
      クラスからコピーされた説明: AbstractView
      ビューを実際にレンダリングするには、サブクラスでこのメソッドを実装する必要があります。

      最初のステップは、リクエストの準備です。JSP の場合、これはモデルオブジェクトをリクエスト属性として設定することを意味します。2 番目のステップは、たとえば RequestDispatcher を介した JSP を含む、実際のビューのレンダリングです。

      次で指定:
      クラス AbstractViewrenderMergedOutputModel 
      パラメーター:
      model - 静的な属性よりも動的な値が優先される、結合された出力マップ(非 null
      request - 現在の HTTP リクエスト
      response - 現在の HTTP レスポンス
      例外:
      ExceptionSE - レンダリングに失敗した場合
    • readPdfResource

      protected com.lowagie.text.pdf.PdfReader readPdfResource() throws IOExceptionSE
      未加工の PDF リソースを iText PdfReader に読み込みます。

      デフォルトの実装では、指定された "url" プロパティを ApplicationContext リソースとして解決します。

      戻り値:
      PdfReader インスタンス
      例外:
      IOExceptionSE - リソースへのアクセスに失敗した場合
      関連事項:
    • mergePdfDocument

      protected abstract void mergePdfDocument(MapSE<StringSE,ObjectSE> model, com.lowagie.text.pdf.PdfStamper stamper, HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE
      PDF フォームを特定のモデルデータとマージするには、サブクラスがこのメソッドを実装する必要があります。

      これは、AcroForm で値を設定できる場所です。このレベルで実行できることの例は次のとおりです。

       // get the form from the document
       AcroFields form = stamper.getAcroFields();
      
       // set some values on the form
       form.setField("field1", "value1");
       form.setField("field2", "value2");
      
       // set the disposition and filename
       response.setHeader("Content-disposition", "attachment; FILENAME=someName.pdf");

      渡された HTTP レスポンスは、Cookie またはその他の HTTP ヘッダーを設定するために使用されることに注意してください。ビルドされた PDF ドキュメント自体は、このメソッドが返された後、自動的にレスポンスに書き込まれます。

      パラメーター:
      model - モデルマップ
      stamper - AcroFields を含む PdfStamper インスタンス。必要に応じて、この PdfStamper インスタンスをカスタマイズすることもできます。"formFlattening" プロパティを設定します。
      request - ロケールなどが必要な場合に備えて。属性を見てはいけません。
      response - クッキーを設定する必要がある場合に備えて。書いてはいけません。
      例外:
      ExceptionSE - ドキュメントの構築中に発生した例外