クラス AbstractPdfStamperView
java.lang.ObjectSE
org.springframework.context.support.ApplicationObjectSupport
org.springframework.web.context.support.WebApplicationObjectSupport
org.springframework.web.servlet.view.AbstractView
org.springframework.web.servlet.view.AbstractUrlBasedView
org.springframework.web.servlet.view.document.AbstractPdfStamperView
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、InitializingBean
、ApplicationContextAware
、ServletContextAware
、View
AcroForm を使用して既存のドキュメントを操作する PDF ビューの抽象スーパークラス。アプリケーション固有のビュークラスは、このクラスを継承して PDF フォームをモデルデータとマージします。
このビューの実装では、Bruno Lowagie の iText API を使用します。オリジナルの iText 2.1.7 とそのフォークである OpenPDF で動作することが知られています。OpenPDF は積極的にメンテナンスされており、信頼できない PDF コンテンツに対する重要な脆弱性を修正しているため、強くお勧めします。
提案と元のプロトタイプを提供してくれた Bryant Larsen に感謝します。
- 導入:
- 2.5.4
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドのサマリー
クラス org.springframework.web.servlet.view.AbstractView から継承されたフィールド
DEFAULT_CONTENT_TYPE
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたフィールド
logger
インターフェース org.springframework.web.servlet.View から継承されたフィールド
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected boolean
このビューがダウンロードコンテンツ(通常は PDF ファイルや Excel ファイルなどのバイナリコンテンツ)を生成するかどうかを返します。protected abstract void
mergePdfDocument
(MapSE<StringSE, ObjectSE> model, com.lowagie.text.pdf.PdfStamper stamper, HttpServletRequestEE request, HttpServletResponseEE response) PDF フォームを特定のモデルデータとマージするには、サブクラスがこのメソッドを実装する必要があります。protected com.lowagie.text.pdf.PdfReader
生の PDF リソースを iText PdfReader に読み込みます。protected final void
renderMergedOutputModel
(MapSE<StringSE, ObjectSE> model, HttpServletRequestEE request, HttpServletResponseEE response) ビューを実際にレンダリングするには、サブクラスでこのメソッドを実装する必要があります。クラス org.springframework.web.servlet.view.AbstractUrlBasedView から継承されたメソッド
afterPropertiesSet, checkResource, getUrl, isUrlRequired, setUrl, toString
クラス org.springframework.web.servlet.view.AbstractView から継承されたメソッド
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, formatViewName, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, setResponseContentType, writeToResponse
クラス org.springframework.web.context.support.WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
コンストラクターの詳細
AbstractPdfStamperView
public AbstractPdfStamperView()
メソッドの詳細
generatesDownloadContent
protected boolean generatesDownloadContent()クラスからコピーされた説明:AbstractView
このビューがダウンロードコンテンツ(通常は PDF ファイルや Excel ファイルなどのバイナリコンテンツ)を生成するかどうかを返します。デフォルトの実装は
false
を返します。通常、レスポンス OutputStream を介して、クライアント側で一時キャッシュを必要とするダウンロードコンテンツを生成していることがわかっている場合、サブクラスはここでtrue
を返すことが推奨されます。renderMergedOutputModel
protected final void renderMergedOutputModel(MapSE<StringSE, ObjectSE> model, HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSEクラスからコピーされた説明:AbstractView
ビューを実際にレンダリングするには、サブクラスでこのメソッドを実装する必要があります。最初のステップは、リクエストの準備です。JSP の場合、これはモデルオブジェクトをリクエスト属性として設定することを意味します。2 番目のステップは、たとえば RequestDispatcher を介した JSP を含む、実際のビューのレンダリングです。
- 次で指定:
- クラス
AbstractView
のrenderMergedOutputModel
- パラメーター:
model
- 静的な属性よりも動的な値が優先される、結合された出力マップ(非null
)request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンス- 例外:
ExceptionSE
- レンダリングに失敗した場合
readPdfResource
生の 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 ExceptionSEPDF フォームを特定のモデルデータとマージするには、サブクラスがこのメソッドを実装する必要があります。これは、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
- ドキュメントの構築中に発生した例外