3

アプリケーションへのpdfkitの追加について、次のレールキャストに従いましたが、pdfの生成に問題があります。これが私がした次のことです:

自作パッケージマネージャーを介してwkhtmltopdfをダウンロードしました

brew install wkhtmltopdf

次に、pdfkit gemをgemfileに追加し、bundleinstallコマンドを実行しました。config/application.rbファイルに以下を追加しました

require 'pdfkit'
...
config.middleware.use PDFKit::Middleware, :print_media_type => true

次に、アプリケーションのレイアウトファイルを変更して、すべてのスタイルシートタイプを含めました。

rakeミドルウェアを実行すると、コマンドが機能し、pdfkitミドルウェアが表示されます。

ルートの最後にpdfを追加しようとすると、アプリケーションがハングし、コマンドラインから終了する必要があります。PDFにしたいページへのリンクを作成すると、すべてのマークアップが変更され、破損したファイルのように見えます。(テキストファイルをワードプロセッサで開いたようです。その逆も同様です。役立つ場合は画像を提供できます)スタイルシートでcssを変更しようとしても、PDFへのリンクを表示しても有効になりません。これは、レールの新しいアセットパイプラインと関係があると思いますが、他の誰かがこの問題を経験したことがありますか?

4

1 に答える 1

15

したがって、私のエラーはアセットパイプラインに関係していると思い込んでいたのですが、調査を行った後、新しい初期化子を作成して次のコードを追加する必要があるようです。

ActionController::Base.asset_host = Proc.new { |source, request|
  if request.env["REQUEST_PATH"].include? ".pdf"
    "file://#{Rails.root.join('public')}"
  else
    "#{request.protocol}#{request.host_with_port}"
  end
}
于 2011-11-05T19:17:30.787 に答える