クラス 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 インスタンス
- 関連事項:
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()