質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Charts

Google Chartsは、円グラフ・棒グラフ・折れ線グラフなどのさまざまなグラフをJavaScriptで容易に表示できる無料のライブラリ。デザインやイベント処理といったカスタマイズができ、商用利用も可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

2218閲覧

rails wicked_pdfでGoogle Chartが表示されない

sreq

総合スコア0

Google Charts

Google Chartsは、円グラフ・棒グラフ・折れ線グラフなどのさまざまなグラフをJavaScriptで容易に表示できる無料のライブラリ。デザインやイベント処理といったカスタマイズができ、商用利用も可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/07/29 02:39

前提・実現したいこと

railsのwicked_pdfを使ってGoogle Chartを使ったpdf表示をさせたいのですができない状況です。(pdf_controller.rbにルーティングしてviewを表示させるだけのアプリです。)
wicked_pdfのshow_as_htmlでhtml表示させると正常に表示されたので(下にスクリーンショット添付しています)、gemのwkhtmltopdf-binaryのバージョンなどが原因でうまくいってないのかと考えているのですが、何か思い当たる原因等分かる方いらっしゃればご教示いただきたいです。

該当のソースコード

pdf_controller.rb

class PdfController < ApplicationController def company_download respond_to do |format| format.pdf do render pdf: 'test', template: 'pdf/test.pdf.erb', show_as_html: params.key?('debug'), javscript_delay: 1000 end end end end

test.pdf.erb(テストのため、Google Chart公式サイトのQuick Start!より引用)

<html> <head> <meta http-equiv="Content-Type" content="text/html" charset="utf-8" /> <!--Load the AJAX API--> <script src="https://www.gstatic.com/charts/loader.js"></script> <script> document.write('javascriptで表示しています') // Load the Visualization API and the corechart package. google.charts.load('current', {'packages':['corechart']}); // Set a callback to run when the Google Visualization API is loaded. google.charts.setOnLoadCallback(drawChart); // Callback that creates and populates a data table, // instantiates the pie chart, passes in the data and // draws it. function drawChart() { // Create the data table. var data = new google.visualization.DataTable(); data.addColumn('string', 'Topping'); data.addColumn('number', 'Slices'); data.addRows([ ['Mushrooms', 3], ['Onions', 1], ['Olives', 1], ['Zucchini', 1], ['Pepperoni', 2] ]); // Set chart options var options = {'title':'How Much Pizza I Ate Last Night', 'width':400, 'height':300}; // Instantiate and draw our chart, passing in some options. var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <!--Div that will hold the pie chart--> <div id="chart_div"></div> <div>test</div> </body> </html>

show_as_htmlでhtml表示させたもの
イメージ説明
pdf表示させたもの
イメージ説明

試したこと

https://stackoverrun.com/ja/q/5314519 こちらのサイトで説明されているinit()のコールバック処理を試しましたが表示できませんでした。

https://developers.google.com/chart/interactive/docs/basic_load_libs

<script src="https://www.gstatic.com/charts/loader.js"></script> <script src="https://www.google.com/jsapi"></script>

上記リンクのGoogleChartの公式ドキュメントにバージョンの違いで上のコードじゃないと動かないかもみたいなことが書いてあり、どちらのコードも試したのですが(両方記述したものも試しました)が表示されないです。

補足情報(FW/ツールのバージョンなど)

Rails 6.0.3.1
ruby 2.6.5p114
wicked_pdf 2.1.0
wkhtmltopdf-binary 0.12.6.2
他に必要な補足情報等ありましたらコメントいただければ追記させていただきます!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

2つの可能性が考えられます。

  • グラフの描画に時間がかかっているので、それ以前の結果を出力してしまっている
  • wkhtmltopdfのHTMLレンダリングエンジンが古い関係上、Google Chartsが正常動作しない

まずはディレイ時間を増やしてみて、前者か後者かの切り分けを行ってみましょう。

投稿2020/07/29 02:50

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sreq

2020/07/29 02:52

ご回答ありがとうございます! 早速試してみます!
sreq

2020/07/29 03:01

ディレイ時間を増やしてみましたが、表示されませんでした。
sreq

2020/07/29 03:11

一度wkhtmltopdf-binaryのバージョンを変更して試してみます!
sreq

2020/07/30 03:13

色々試してみたのですが、表示できないです、何かご存知の方いらっしゃればコメントいただきたいです。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問