使用 wkhtmltopdf 将 Google 图表输出为 PDF
Using wkhtmltopdf to output Google Charts to PDF
我们有一个使用 silverstripe-wkhtmltopdf 模块将 HTML/CSS/Javascript 输出为 PDF 的 Silverstripe 项目。
像 document.write 这样的简单 Javascript 可以工作,但我想使用可视化 API:
输出 Google 图表
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script>
google.load('visualization', '1', {packages: ['corechart', 'bar']});
</script>
PDF 没有显示任何可视化输出,所以我使用了 QTBrowser to debug the Javascript - as suggested here: Debugging javascript in wkhtmltopdf
我在 QTBrowser 中遇到的错误是:Error: one or more fonts could not be loaded.
来自 https://www.google.com/uds/api/visualization/1.0/b5ac9efed10eef460d14e653d05f5fbf/webfontloader,dygraph,format+en,default+en,ui+en,bar+en,corechart+en.I.js:737
HTML 在我看来是正确的,但我不知道 QTBrowser 的兼容性,或者它与 wkhtmltopdf 的关系。
有没有人有过使用 wkhtmltopdf 输出 Google 图表的经验/成功?
这是一个很好的post,它解释了这个主题并向您展示了如何实现它
http://codingexplained.com/coding/php/using-google-visualization-with-wkhtmltopdf
<script type="text/javascript">
function init() {
google.load("visualization", "1.1", { packages:["corechart"], callback: 'drawCharts' });
}
function drawCharts() {
drawAccountImpressions('chart-account-impressions');
}
function drawAccountImpressions(containerId) {
var data = google.visualization.arrayToDataTable([
['Day', 'This month', 'Last month'],
['01', 1000, 400],
['05', 800, 700],
['09', 1000, 700],
['13', 1000, 400],
['17', 660, 550],
['21', 660, 500],
['23', 750, 700],
['27', 800, 900]
]);
var options = {
width: 700,
height: 400,
hAxis: { title: 'Day', titleTextStyle: { color: '#333' } },
vAxis: { minValue: 0 },
curveType: 'function',
chartArea: {
top: 30,
left: 50,
height: '70%',
width: '100%'
},
legend: 'bottom'
};
var chart = new google.visualization.LineChart(document.getElementById(containerId));
chart.draw(data, options);
}
</script>
</head>
<body onload="init()">
<div id="chart-account-impressions"></div>
</body>
我们有一个使用 silverstripe-wkhtmltopdf 模块将 HTML/CSS/Javascript 输出为 PDF 的 Silverstripe 项目。
像 document.write 这样的简单 Javascript 可以工作,但我想使用可视化 API:
输出 Google 图表<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script>
google.load('visualization', '1', {packages: ['corechart', 'bar']});
</script>
PDF 没有显示任何可视化输出,所以我使用了 QTBrowser to debug the Javascript - as suggested here: Debugging javascript in wkhtmltopdf
我在 QTBrowser 中遇到的错误是:Error: one or more fonts could not be loaded.
来自 https://www.google.com/uds/api/visualization/1.0/b5ac9efed10eef460d14e653d05f5fbf/webfontloader,dygraph,format+en,default+en,ui+en,bar+en,corechart+en.I.js:737
HTML 在我看来是正确的,但我不知道 QTBrowser 的兼容性,或者它与 wkhtmltopdf 的关系。
有没有人有过使用 wkhtmltopdf 输出 Google 图表的经验/成功?
这是一个很好的post,它解释了这个主题并向您展示了如何实现它
http://codingexplained.com/coding/php/using-google-visualization-with-wkhtmltopdf
<script type="text/javascript">
function init() {
google.load("visualization", "1.1", { packages:["corechart"], callback: 'drawCharts' });
}
function drawCharts() {
drawAccountImpressions('chart-account-impressions');
}
function drawAccountImpressions(containerId) {
var data = google.visualization.arrayToDataTable([
['Day', 'This month', 'Last month'],
['01', 1000, 400],
['05', 800, 700],
['09', 1000, 700],
['13', 1000, 400],
['17', 660, 550],
['21', 660, 500],
['23', 750, 700],
['27', 800, 900]
]);
var options = {
width: 700,
height: 400,
hAxis: { title: 'Day', titleTextStyle: { color: '#333' } },
vAxis: { minValue: 0 },
curveType: 'function',
chartArea: {
top: 30,
left: 50,
height: '70%',
width: '100%'
},
legend: 'bottom'
};
var chart = new google.visualization.LineChart(document.getElementById(containerId));
chart.draw(data, options);
}
</script>
</head>
<body onload="init()">
<div id="chart-account-impressions"></div>
</body>