5

PDFKitを使おうとしています。

かなり単純に見えるので、Ryan'sRailsのキャストをフォローしようとしています。

そこで、gemをGemFileに追加し、次のように更新application.rbしました。

config.middleware.use "PDFKit::Middleware"

その後、Linuxにwkhtmltopdfをインストールしました。

apt-get install wkhtmltopdf

そして、私はそれが機能することを確認します:

[nicolas@Minto]%wkhtmltopdf www.google.com gogole.pdf
Loading page (1/2)
Printing pages (2/2)                                               
Done

自分のページの1つに.pdfを追加しようとするまで、すべてが良さそうです...

Webサイトは永久にロード状態のままです。コンソールでを使用してサーバーを停止するとCtrl - C、次のエラーが発生します。

RuntimeError (command failed: "/usr/bin/wkhtmltopdf" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-right" "0.75in" "--margin-bottom" "0.75in" "--margin-left" "0.75in" "--encoding" "UTF-8" "--print-media-type" "--quiet" "-" "-"):
  pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:71:in `to_pdf'
  pdfkit (0.5.2) lib/pdfkit/middleware.rb:21:in `call'

私は何が間違っているのですか?

4

4 に答える 4

0

私は最近PDFKitで遊んで、それをRailsアプリケーションで動作させ、同様の問題に直面しました。
必要な3つのステップは次のとおりです。

  1. GemFileにgem"pdfkit"を入れる必要があります。
  2. config.middleware.use PDFKit ::Middlewareを既に持っているapplication.rbファイルに入れます。
  3. 次のコードを「config/initializers」フォルダーの下のpdfkit.rbファイルに入れてみてください。

    PDFKit.configure do | config |

    config.wkhtmltopdf ='C:\ software \ Utilities \ wkhtmltopdf \wkhtmltopdf.exe'#wkhtmltppdfインストールディレクトリへのパス

    config.root_url = "http:// localhost"#サーバーで外部ホスト名が使用できない場合にのみ使用します。

    終わり

于 2012-03-18T15:36:14.390 に答える
0

わかりました、

グーグルで数時間かかりましたが、私はついに別のスタックオーバーフローの質問で解決策を見つけました: pdfkitがrails3.1で正しくレンダリングされない

助けてくれてありがとう。

于 2012-03-18T21:15:28.920 に答える
0

Ryan'sRailsのキャストもフォローしました。

PDFkitはwkhtmltopdf.rbに依存しています。0.9.9を超えるバージョンでは、PDF作成プロセスが完了する直前にハングし、Ctrl-Cが必要になります。LinuxではなくOSX10.6.8を使用しています。ただし、試してみてください。

wkhtmltopdf --version

> 0.9.9の場合は、0.9.9にロールバックします。私の問題を解決しました。理解するのに何時間もかかりました。

于 2012-08-07T19:37:06.217 に答える
0

ここに関連する問題があります:PDFKitとwkhtmotopdfを使用してPDF生成がハングする

Beerlingtonからのソリューションの引用:

HTMLからjavascriptincludeタグを削除してみて、少なくともPDFがレンダリングされるかどうかを確認してください。それがうまくいけば、少なくとも出発点があります。

私はそれを試しました、そしてそれは私のために働きました。

javascriptや相対パスのあるスタイルシートのようなアセットと関係があると思います。

于 2012-10-25T21:03:02.780 に答える