2016-09-01 2 views
0

私のコントローラには私のウェブサイトのアプリケーションページのhtmlページをレンダリングする#applicationsというアクションがあります。このアクションのパスを:pdf形式で指定すると、ページがpdf(正しく動作する)としてレンダリングされます。アクションストリームからpdfsを結合するレール

私は別のアクション#applications_print_versionを作成しています。このビューには、#applicationsからのレンダリングビューといくつかの他のpdfs(URLのリストから)が含まれている必要があります。 combine_pdfを使用すると、URLを介してpdfsのリストを取得できましたが、#applicationsビューを#applications_print_versionの結合されたpdfに追加することはできません。

これまで私がこれまで持っていたことは次のとおりです。

def applications_print_version 
    html = render_to_string(action: :applications) 
    pdf = WickedPdf.new.pdf_from_string(html) 

    new_pdf = CombinePDF.new 
    new_pdf << CombinePDF.parse(pdf) 

    #List of pdfs I got from somewhere else 
    @pdf_attachments.each { |att| new_pdf << CombinePDF.parse(Net::HTTP.get(URI.parse(att.url))) } 

    send_data new_pdf.to_pdf, :disposition => 'inline', :type => "application/pdf" 
end 

このソリューションは、すべてのデータを持っているが、pdf変数は何のスタイルを持っていません。私はこれを働かせるように見えない。

+0

ログにエラーコードや警告がありますか? – Myst

+0

@Myst、no。レンダリングされた部分データのログがあります。 –

+0

テストのために中間結果を保存してください(つまり、IO.binwrite 'step1.pdf'、pdf'を追加してください)... Wicked PDFはどのように見えますか? – Myst

答えて

0

地域のコミュニティサポートのおかげで、私はそれをうまく動作させることができました。私が修正する必要があったいくつかのことがありました。

レンダリングに使用していた#applicationsのレイアウトは、私がPDFKitに使用した私の標準的なPDFレイアウトを使用していました。私は、レイアウトを複製し、私は私がWickedPDFが必要なレイアウトで#applicationsアクションをレンダリングすることができることをやった

<%= wicked_pdf_stylesheet_link_tag 'application' %> 

一つで

<%= stylesheet_link_tag 'application' %> 

を置き換えます。

html = render_to_string(action: :applications, layout: 'wicked_pdf') 

別の問題が発生しました。 WickedPDFには既知の問題がありますhttps://github.com/mileszs/wicked_pdf/issues/470

私のスタイルシートでは@import "bootstrap"のインスタンスを削除する必要がありましたが、上記の問題は解決できませんでした。

#applications_print_versionは正しく機能します。

もっとよくすることができる方は、私に知らせてください:

関連する問題