5

私はmac osxを使用しており、wickedpdfを介してhtmlファイルをpdfファイルに変換しようとしています。PDF ファイルのすべてのページに文字列を配置したいのですが、ヘッダーがレンダリングされないという問題があります。

私のwickedpdfメソッドは、

format.pdf do
        render :pdf => '#{@examination.name}.pdf',
               :disposition => 'inline',
               :layout => 'examination_session_pdf.html.erb',
               :no_background => true,
               :header =>{:html =>{:template=>'shared/pdf/header.pdf.erb'}}
      end

ヘッダーファイルには「hello」文字列のみが含まれているか、何も含まれていません。ただし、このエラーが表示されるたびに、

can't convert nil into String

問題の行は「:header =>{:html =>{:template=>'shared/pdf/header.pdf.erb'」です。さらに、コンソールでのヘッダー ページのレンダリングに関するログが表示されません。

どうすれば修正できますか?

4

2 に答える 2

6

今日、まったく同じ問題が発生しました。

これは、代わりに機能させるために私が行ったことです

    format.pdf する
        render :pdf => "#{@inv.invno}.pdf",
               :template => "inv/show.pdf",
               :レイアウト =>'pdf',
               :header => { :content => render_to_string({:template => 'inv/header.pdf.erb'})},
               :footer => { :content => render_to_string({:template => 'inv/footer.pdf.erb'})},
               :margin => { :top => 38, :bottom => 35}
        終わり

実際に render_to_string を使用し、結果を :content 経由でヘッダーまたはフッターに貼り付けたことがわかります。これは私にとって非常にうまく機能します。

:margin セクションは無視できます。ヘッダーとフッターの両方にグラフィックが含まれているため、それを使用してスペースをうまく配置しているだけです。

お役に立てれば!

于 2013-01-14T21:00:12.573 に答える