クラス AbstractPdfView
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、ApplicationContextAware
、ServletContextAware
、View
このビューの実装では、Bruno Lowagie の iText API を使用します。オリジナルの iText 2.1.7 とそのフォークである OpenPDF で動作することが知られています。OpenPDF は積極的にメンテナンスされており、信頼できない PDF コンテンツに対する重要な脆弱性を修正しているため、強くお勧めします。
メモ: Internet Explorer は、宣言されたコンテンツ型を常に考慮するとは限らないため、".pdf" 拡張子が必要です。
- 作成者:
- Rod Johnson, Juergen Hoeller, Jean-Pierre Pawlak
- 関連事項:
フィールドサマリー
クラス 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 abstract void
buildPdfDocument
(MapSE<StringSE, ObjectSE> model, com.lowagie.text.Document document, com.lowagie.text.pdf.PdfWriter writer, HttpServletRequestEE request, HttpServletResponseEE response) サブクラスは、モデルに基づいて iText PDF ドキュメントを構築するためにこのメソッドを実装する必要があります。protected void
buildPdfMetadata
(MapSE<StringSE, ObjectSE> model, com.lowagie.text.Document document, HttpServletRequestEE request) iText ドキュメントのメタフィールド (作成者、タイトルなど) を入力します。protected boolean
このビューがダウンロードコンテンツ(通常は PDF ファイルや Excel ファイルなどのバイナリコンテンツ)を生成するかどうかを返します。protected int
PDF ファイルのビューアー設定を返します。protected com.lowagie.text.Document
PDF コンテンツを保持する新しいドキュメントを作成します。protected com.lowagie.text.pdf.PdfWriter
newWriter
(com.lowagie.text.Document document, OutputStreamSE os) 指定された iText ドキュメントに対して新しい PdfWriter を作成します。protected void
prepareWriter
(MapSE<StringSE, ObjectSE> model, com.lowagie.text.pdf.PdfWriter writer, HttpServletRequestEE request) 指定された PdfWriter を準備します。protected final void
renderMergedOutputModel
(MapSE<StringSE, ObjectSE> model, HttpServletRequestEE request, HttpServletResponseEE response) ビューを実際にレンダリングするには、サブクラスでこのメソッドを実装する必要があります。クラス 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, toString, 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
コンストラクターの詳細
AbstractPdfView
public AbstractPdfView()このコンストラクターは、適切なコンテンツ型 "application/pdf" を設定します。IE はこれにあまり気づきませんが、これについてできることはあまりありません。生成されたドキュメントの拡張子は ".pdf" である必要があります。
メソッドの詳細
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
- レンダリングに失敗した場合
newDocument
protected com.lowagie.text.Document newDocument()PDF コンテンツを保持する新しいドキュメントを作成します。デフォルトでは A4 ドキュメントを返しますが、サブクラスは任意のドキュメントを指定できます。場合によっては、ビューで定義された Bean プロパティによってパラメーター化されます。
- 戻り値:
- 新しく作成された iText ドキュメントインスタンス
- 関連事項:
Document(com.lowagie.text.Rectangle)
newWriter
protected com.lowagie.text.pdf.PdfWriter newWriter(com.lowagie.text.Document document, OutputStreamSE os) throws com.lowagie.text.DocumentException 指定された iText ドキュメントに対して新しい PdfWriter を作成します。- パラメーター:
document
- iText ドキュメントを作成するためのライターos
- 書き込む OutputStream- 戻り値:
- 使用する PdfWriter インスタンス
- 例外:
com.lowagie.text.DocumentException
- ライターの作成中にスローされた場合
prepareWriter
protected void prepareWriter(MapSE<StringSE, ObjectSE> model, com.lowagie.text.pdf.PdfWriter writer, HttpServletRequestEE request) throws com.lowagie.text.DocumentException指定された PdfWriter を準備します。PDF ドキュメントを構築する前、つまりDocument.open()
を呼び出す前に呼び出されます。たとえば、ページイベントリスナーの登録に役立ちます。デフォルトの実装では、このクラスの
getViewerPreferences()
メソッドによって返されるビューアー設定を設定します。- パラメーター:
model
- メタ情報を入力する必要がある場合のモデルwriter
- 準備する PdfWriterrequest
- ロケールなどが必要な場合に備えて。属性を見てはいけません。- 例外:
com.lowagie.text.DocumentException
- ライターの準備中にスローされた場合- 関連事項:
Document.open()
PdfWriter.setPageEvent(com.lowagie.text.pdf.PdfPageEvent)
PdfWriter.setViewerPreferences(int)
getViewerPreferences()
getViewerPreferences
protected int getViewerPreferences()PDF ファイルのビューアー設定を返します。デフォルトでは
AllowPrinting
およびPageLayoutSinglePage
を返しますが、サブクラス化することもできます。サブクラスは、設定を固定するか、ビューで定義された Bean プロパティから取得することができます。- 戻り値:
- PdfWriter 定義に対するビット情報を含む int
- 関連事項:
PdfWriter.ALLOW_PRINTING
PdfWriter.PageLayoutSinglePage
buildPdfMetadata
protected void buildPdfMetadata(MapSE<StringSE, ObjectSE> model, com.lowagie.text.Document document, HttpServletRequestEE request) iText ドキュメントのメタフィールド (作成者、タイトルなど) を入力します。
デフォルトは空の実装です。サブクラスはこのメソッドをオーバーライドして、タイトル、件名、作成者、作成者、キーワードなどのメタフィールドを追加できます。このメソッドは、ドキュメントに PdfWriter を割り当てた後、document.open()
を呼び出す前に呼び出されます。- パラメーター:
model
- メタ情報を入力する必要がある場合のモデルdocument
- iText ドキュメントが入力request
- ロケールなどが必要な場合に備えて。属性を見てはいけません。- 関連事項:
Document.addTitle(java.lang.String)
Document.addSubject(java.lang.String)
Document.addKeywords(java.lang.String)
Document.addAuthor(java.lang.String)
Document.addCreator(java.lang.String)
Document.addProducer()
Document.addCreationDate()
Document.addHeader(java.lang.String, java.lang.String)
buildPdfDocument
protected abstract void buildPdfDocument(MapSE<StringSE, ObjectSE> model, com.lowagie.text.Document document, com.lowagie.text.pdf.PdfWriter writer, HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSEサブクラスは、モデルに基づいて iText PDF ドキュメントを構築するためにこのメソッドを実装する必要があります。Document.open()
呼び出しとDocument.close()
呼び出しの間で呼び出されます。渡された HTTP レスポンスは、Cookie またはその他の HTTP ヘッダーを設定するために使用されることに注意してください。ビルドされた PDF ドキュメント自体は、このメソッドが返された後、自動的にレスポンスに書き込まれます。
- パラメーター:
model
- モデルマップdocument
- iText ドキュメントに要素を追加するwriter
- 使用する PdfWriterrequest
- ロケールなどが必要な場合に備えて。属性を見てはいけません。response
- クッキーを設定する必要がある場合に備えて。書いてはいけません。- 例外:
ExceptionSE
- ドキュメントの構築中に発生した例外- 関連事項:
Document.open()
Document.close()