

pdfkitを用いて、PDFファイルを生成する機能を実装しておりまして、  
PDFファイルができるところまではできました。

<https://github.com/pdfkit/pdfkit>

ただ、共通のheader, footerを入れる際に、htmlタグがそのままでてしまいます。

Controllerの処理は次の通り、記述しております。

レイアウトはslimで書いておりまして、この部分は問題なく、htmlタグが解釈できておりました。

[code]

    def export
      respond_to do |format|
        # .html でアクセスした際は、リダイレクト(show_as_html を true にするため、debug: 1 で)
        format.html { redirect_to action: 'export', format: 'pdf', debug: 1 }
        format.pdf do
          html = render_to_string template: 'layouts/export.html.slim'
          @pdf = PDFKit.new(html, header_left: '<p>hoge</p>')
          @pdf.stylesheets << "#{Rails.root}/app/assets/stylesheets/pdf.css"
          send_data @pdf.to_pdf,
            filename:    "test.pdf",
            type:        "application/pdf",
            disposition: "inline"
        end
      end
    end
    
[/code]

header_leftを追加し `<p>hoge</p>` も出力されているのですが、  
headerだけはhtmlタグがそのままでてしまいます。

# 実行環境

[code]

    mac OSX yosemite
    pdfkit (0.8.2)
    wicked_pdf (1.1.0)
    Rails 4.2.7.1
    ruby 2.3.1p112
    
[/code]

# 対策1

エスケープしたりしましたが、ダメでした。

`ApplicationController.helpers.sanitize "<p>hoge</p>"`

<http://qiita.com/2or3/items/3f25216663190676a693>

# 対策2

Slimがダメなのかと思い次の通りやりましたが、ダメでした。

`@pdf = PDFKit.new('<html><head></head><body></body></html>', header_left:
'<p>hoge</p>')`


CC BY-SA 3.0
2017-05-02T11:00:49.160
34419
2020-08-28T17:02:30.263
13175
question
ruby-on-rails pdf
pdfkitのheaderだけが、htmlタグが解釈されず、そのまま出力されます。


pdfkitのREADMEとコードを検索 `header_left`
で検索してみたところ、ヒットするものがありませんでしたので、pdfkitが許容する引数ではないではないかと思いました。

[code]

    PDFKit.new(html, header_left: '<p>hoge</p>')
    
    html = render_to_string template: 'layouts/export.html.slim'
    
[/code]

export.html.slim で `<p>hoge</p>` を記載するのはいかがでしょうか?


CC BY-SA 3.0
2017-05-03T12:07:43.480
34437
2017-05-03T12:07:43.480
22531
34419
answer