私はWKTHMTOPDFを使用していて、本当に楽しんでいます。ただし、変換中のページにはGoogleマップがあり、結果のPDFは、マップが半分読み込まれた状態で表示されます。以前のバージョンでは--javascript--delay
を追加するオプションがあったことは知っていますが、非推奨のようです。バージョン0.99を使用しています。別のオプションはありますか?
--javascript-delay
オプションは非推奨ではありません。また、最新バージョンにアップグレードすることをお勧めします-0.9.9は非常に古いバージョンです。
有る 別の --javascript--delayを使用する必要がない、これを行うためのより良い方法(そして、必要な遅延が実際に何であるかを知る前に遅延時間を設定する必要がないという利点があります)。
'tileloaded'イベントにコールバックを追加します。
google.maps.event.addListenerOnce(map, 'tilesloaded', function(){
window.status = 'ready_to_print';
});
次に、-window.statusオプションを「ready_to_print」に設定してwkhtmltopdfを呼び出します。
wkhtmltopdf --window-status ready_to_print map.html map.pdf
明らかに、wkhtmltopdfが呼び出されたとき、および上記のコードが起動する前に、window.statusがその値とまだ等しくない限り、文字列 'ready_to_print'を任意の値に変更できます。
適切なイベントは別の名前で行われますが、同様のアプローチをグーグルチャートで使用することができます。
Wkhtmltopdfバージョン0.12.0を使用できます
私はウェブサイトでもいくつかの非常にjavascriptのコンテンツを使用しています。以前は、バージョン0.99では正しくレンダリングされませんでしたが、オプション--javascript-delay
を使用してバージョン0.12を使用すると、すべてが正常に表示されます。
他のオプションを追加して、JavaScriptを完全にロードすることもできます。つまり、--enable-javascript
、--no-stop-slow-scripts
などです。
--javascript-delayを使用する際には、適切な時間遅延を使用する必要があることを確認してください。レンダリングにかかる時間はサイトによって異なります。より多くの時間遅延を使用する場合は、実行に時間がかかり、より少ない時間遅延を使用する場合は、javascriptが正しくロードされません。
wkhtmltopdfの最新バージョンへのリンク
--javascript-delay
関数は機能しますが、私の使用法には最適ではありません。おそらく、使用法も可変ですか? PDFには、ダースアイテムとそのマップビュー、または数百アイテムのリストのみが含まれる場合があります。誰も正しいmsec
遅延はありません...
コントローラメソッド内で@ rohit-singhal tip(GMaps4Rails gemおよびhamlビューを使用するRailsアプリ)を正常に使用しました。
def index
...
respond_to do |format|
format.pdf do
@map_data = { markers: @map_hash, zoom: 10, cluster_zoom: 10, center: center_coordinates,
fit_to_bounds: true, show_center_marker: false, map_type: 'roadmap'}
render pdf: 'Water Supplies',
disposition: 'inline',
layout: 'layouts/pdf.html.haml',
show_as_html: params.key?('debug'),
no_stop_slow_scripts: ''
end
end
end
また、@ mwagのtilesloaded
コールバックも使用しました。 (グーグルマップ生成JavaScriptの逐語的。)no_stop_slow_scripts
を切り替えるための関心のあるコントローラー行:
...
window_status: 'ready_to_print'
...
両方とも機能しました。どちらかに利点があるかどうかわからない。