4

wicked_pdfgemwkhtmltopdf0.9.9ライブラリを使用してローカルマシン(MAC OSX 10.7.5 Lion )でPDFを生成するRuby onRails3.2アプリがあります。このアプリは、HTMLページ(SVG画像を含む)をPDFファイルとして正常にレンダリングします。これは、アプリが達成しようとしている正確な動作です。

ローカルでは、OSXの11.0.0バージョンのバグのため、wkhtmltopdf0.9.9を使用する必要がありました。

問題は、アプリがHerokuで本番環境にプッシュされるときに、別のバイナリ(wkhtmltopdf-0.9.9 Linux Static Binary(amd64))を使用する必要があり、SVGレンダリングが壊れているように見えることです。PDFが作成されますが、SVG画像が正しくレンダリングされません。それらは、画像があるべき場所にある単なる空白または正方形の「シェル」です。

wkhtmltopdf-heroku gemを使用しようとしましたが、「BrokenPipe」エラーが発生し続けました。

この問題に関連するエラーメッセージはなく、Linuxバージョンのどこに問題があるのか​​わかりません。そこに何かアイデアはありますか?

これはconfig/initializers/wicked_pdf.rbファイル内のコードです:

if Rails.env.staging? || Rails.env.production?  
  exe_path = Rails.root.join('bin', 'wkhtmltopdf-amd64').to_s  
else  
  exe_path = Rails.root.join('bin', 'wkhtmltopdf').to_s  
end
4

1 に答える 1

2

面倒な調整や構成を行わずに機能する簡単な方法があります。SVG ファイルを Base64 エンコードし、HTML にインラインで含めます。

<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGF...>

CSS にフォントを埋め込むためにこの方法を使用しますが、SVG やその他の画像形式でも機能します。

于 2013-07-14T21:01:05.107 に答える