wkhtmltopdfを使用してc3チャートを使用してhtmlからPDFドキュメントを生成する場合、最新バージョンのc3(0.3.0)により、wkhtmltopdfがエラー「警告: undefined:0 TypeError: 'undefined'は関数ではありません」をアナウンスします。 結果のPDFには、グラフではなく空白が表示されます。
チャートを水泳で生成するために使用されていた古いバージョンのc3。 これを円グラフと棒グラフのタイプで再現しました。
wkhtmltopdfを含む完全なhtml、css、javascriptパッケージは
http://burgan.whitevector.com/images/bug_report.zip
wkhtmltopdfの完全な出力:
shark @ virshark :〜/ bug_report $ sh generate_pdf.sh
ページの読み込み(1/6)
警告: undefined:0 TypeError: 'undefined'は関数ではありません
ページ数を数える(2/6)
リンクの解決(4/6)
ヘッダーとフッターの読み込み(5/6)
ページの印刷(6/6)
終わり
これは、 wkhtmltopdf
がQtWebKit
を使用しているためだと思います。これは、新しいバージョンのc3全体で使用されている方法であるFunction.prototype.bind
に問題があります。 phantomjsエクスポーターを作成したとき、私は自分で同様の問題に取り組む必要がありました。 解決策は、この小さなポリフィルを追加することです。
Function.prototype.bind = Function.prototype.bind || function (thisp) {
var fn = this;
return function () {
return fn.apply(thisp, arguments);
};
};
私はwkhtmltopdf
精通していませんが、レンダリングされるページのコンテキスト内でそのコードを実行する必要があります(c3 jsファイルの前にページに含めるだけで機能します)
ありがとう! 他のJavascriptの前にこれらの6行を挿入すると、問題が解決しました。
ありがとう! この問題は解決したようですので、閉じさせてください。
@yuvii
@yuviiあなたは素晴らしいです!
同じ問題が発生しましたが、 vega / wkhtmltopdf
。 @yuviiによる解決策は魅力のように機能しました。 どうもありがとう!
@yuviiあなたは王様です!
@yuviiありがとうございます!!!!!
グーグルの場合、 @ yuviiは
ありがとう。
素晴らしい@yuvii 。 Google MapsAPIが変更されたときに同じ問題が発生しました
どうもありがとう、これは私のdjango pdfkitの問題を完全に解決しました!
ありがとう@yuvii 。 私は解決策を探すのに何時間も費やしました:
Fabric.js> Html> wkhtmltopdf> .pdfファイルを使用してキャンバスに描画する
ブラウザのHTMLは正しいのですが、出力.pdfファイルに空白のキャンバスがありました。
fabric.jsにも同じ問題があるようです
これは、
wkhtmltopdf
がQtWebKit
を使用しているためだと思います。これは、新しいバージョンのc3全体で使用されている方法であるFunction.prototype.bind
に問題があります。 phantomjsエクスポーターを作成したとき、私は自分で同様の問題に取り組む必要がありました。 解決策は、この小さなポリフィルを追加することです。Function.prototype.bind = Function.prototype.bind || function (thisp) { var fn = this; return function () { return fn.apply(thisp, arguments); }; };
私は
wkhtmltopdf
精通していませんが、レンダリングされるページのコンテキスト内でそのコードを実行する必要があります(c3 jsファイルの前にページに含めるだけで機能します)
どうもありがとう、私の日を救った。 それはC3jsで私のために働いた。 チャートコンテナの幅を設定することが重要です。
これらのコメントは素晴らしいです。 私はもうコーディングしていません。その世界を去りましたが、時々このページにアクセスし、ニッチな問題の解決策として畏敬の念を抱き、5年間(非常に多くの人々)を助けてきました。 それはクレイジーです。
これは、
wkhtmltopdf
がQtWebKit
を使用しているためだと思います。これは、新しいバージョンのc3全体で使用されている方法であるFunction.prototype.bind
に問題があります。 phantomjsエクスポーターを作成したとき、私は自分で同様の問題に取り組む必要がありました。 解決策は、この小さなポリフィルを追加することです。Function.prototype.bind = Function.prototype.bind || function (thisp) { var fn = this; return function () { return fn.apply(thisp, arguments); }; };
私は
wkhtmltopdf
精通していませんが、レンダリングされるページのコンテキスト内でそのコードを実行する必要があります(c3 jsファイルの前にページに含めるだけで機能します)
ホリーモリー、あなたは永遠に私の心の中で特別な場所を持っています。 HighchartグラフはWebブラウザーで正しく機能していましたが、Wkhtmltopdfを使用してPDFに正しく変換されませんでした。 誰かが同じ問題を抱えている場合は、highchartスクリプトを呼び出す前に、createthat関数を追加するだけです。 4時間後にようやく解決策を見つけました。 また、WkhtmltopdfとHighchartで問題をデバッグできるようにするには、これらの引数「wkhtmltopdf.exe --javascript-delay 10000 --no-stop-slow-scripts --enable-javascript--debug-javascript」を追加することを忘れないでください。
これは、
wkhtmltopdf
がQtWebKit
を使用しているためだと思います。これは、新しいバージョンのc3全体で使用されている方法であるFunction.prototype.bind
に問題があります。 phantomjsエクスポーターを作成したとき、私は自分で同様の問題に取り組む必要がありました。 解決策は、この小さなポリフィルを追加することです。Function.prototype.bind = Function.prototype.bind || function (thisp) { var fn = this; return function () { return fn.apply(thisp, arguments); }; };
私は
wkhtmltopdf
精通していませんが、レンダリングされるページのコンテキスト内でそのコードを実行する必要があります(c3 jsファイルの前にページに含めるだけで機能します)
どうもありがとうございました。6本以上の線を差し込んだだけで、高さチャートで動作し、ほぼ3〜4時間デバッグしていました。
これは、
wkhtmltopdf
がQtWebKit
を使用しているためだと思います。これは、新しいバージョンのc3全体で使用されている方法であるFunction.prototype.bind
に問題があります。 phantomjsエクスポーターを作成したとき、私は自分で同様の問題に取り組む必要がありました。 解決策は、この小さなポリフィルを追加することです。Function.prototype.bind = Function.prototype.bind || function (thisp) { var fn = this; return function () { return fn.apply(thisp, arguments); }; };
私は
wkhtmltopdf
精通していませんが、レンダリングされるページのコンテキスト内でそのコードを実行する必要があります(c3 jsファイルの前にページに含めるだけで機能します)
私の日を救った。 一緒に何日も苦労していました:+1:
最も参考になるコメント
これは、
wkhtmltopdf
がQtWebKit
を使用しているためだと思います。これは、新しいバージョンのc3全体で使用されている方法であるFunction.prototype.bind
に問題があります。 phantomjsエクスポーターを作成したとき、私は自分で同様の問題に取り組む必要がありました。 解決策は、この小さなポリフィルを追加することです。私は
wkhtmltopdf
精通していませんが、レンダリングされるページのコンテキスト内でそのコードを実行する必要があります(c3 jsファイルの前にページに含めるだけで機能します)