レンダープラグインをセットアップして、素敵なPDFファイルを取得しましたが、画像をテーブルのいくつかのカラムに入れる必要があります。これらのイメージは、インスタンスのデータフィールドによって条件付きで選択されます。Grailsのレンダリングプラグインは画像をレンダリングしません
私は正しい場所だと思うので、assets/imagesフォルダに画像があります。
レンダラーがPDFを作成するために使用するテンプレートで、次のGSPラインを使用します。
<td><g:if test="${od?.priceFSC > 0.1}"><asset:image src="checkOut16x16.png" width="16" height="16"/></g:if></td>
HTMLビューとして、画像は完全に印刷されますが、PDFをレンダリングすると欠落します。
私はドキュメントをチェックし、例のコードを試してみました:
コントローラを:
def createPDF() {
def file = new File("asets/CheckOut16x16.png")
def OfferHeader offerHeader = OfferHeader.get(params.id)
[offerHeader: offerHeader])
renderPdf(template: "/stocknote/Stocknote", model: [offerHeader: offerHeader,imageBytes: file.bytes], filename: "Stocknote-"+params.id+".pdf")
}
ビュー:
<rendering:inlinePng bytes="${imageBytes}" class="some-class" />
私はここに条件を気にしなかった私はそれが印刷されるかどうかを見たいだけでしたが、ビューがクラッシュしたためではありません。
URI
/stocknote/editStocknote/32
Class
org.grails.taglib.GrailsTagException
Message
Request processing failed; nested exception is org.grails.gsp.GroovyPagesException: Error processing GroovyPageView: [views/stocknote/editStocknote.gsp:32] [views/stocknote/_StocknoteDetail.gsp:3] 'bytes' is required
Caused by
[views/stocknote/editStocknote.gsp:32] [views/stocknote/_StocknoteDetail.gsp:3] 'bytes' is required
私は間違っていますが、 "Bytes is required"というエラーメッセージが混乱しているように見えますが、バイト= "$ {imageBytes}"です。 誰かが私に何か助けや説明を与えることを願っています。
それはうまくいったのですが、私は間違いを犯しました> _ <。 PDFを作成するために使用されるテンプレートは、レポートを実行するビューでも使用されます。したがって、ビューがレンダリングされたときにエラーが発生しました。私はレンダリングの前にイメージがテンプレートに存在するかどうかをチェックしなければならなかった – larand