为什么 phantomjs page.render 不捕获我的 D3 svg?
Why doesn't phantomjs page.render capture my D3 svg?
为什么我的 D3 可视化没有被 phantomjs 捕获?它是此页面上唯一未捕获并保存为 png 的元素。
我的 oncoprintsave.js 文件:
var page = require('webpage').create();
page.viewportSize = { width: 1920, height: 1080 };
page.open('https://jonkatz2.github.io/2019/03/11/D3-oncoprint', function(status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit(1);
} else {
window.setTimeout(function () {
page.render('oncoprint.png');
phantom.exit();
}, 2000);
}
});
然后在我的 Ubuntu 控制台中输入:
phantomjs oncoprintsave.js
这只是一个有代表性的例子。我正在制作一个闪亮的应用程序,我计划在其中将一些 D3 可视化捕获为 png(服务器端)并将它们包含在 rmarkdown-PDF 报告中。我已经尝试 r2d3::save_d3_png 并得到空白图像,我试图通过直接调用 htmlwidgets::saveWidget 来解决它,然后在结果 html 页面上向 phantomjs 发送系统调用。
我怀疑我的 D3 脚本中的错误导致它失败,但我对 D3 还太陌生,无法识别它,如果我添加 --debug=true 选项,则不会出现错误。
我从来没有解决过这个问题,但我切换到 chrome 并得到了我想要的:
google-chrome --headless --disable-gpu --screenshot --window-size=1920,1080 https://jonkatz2.github.io/2019/03/11/D3-oncoprint
为什么我的 D3 可视化没有被 phantomjs 捕获?它是此页面上唯一未捕获并保存为 png 的元素。
我的 oncoprintsave.js 文件:
var page = require('webpage').create();
page.viewportSize = { width: 1920, height: 1080 };
page.open('https://jonkatz2.github.io/2019/03/11/D3-oncoprint', function(status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit(1);
} else {
window.setTimeout(function () {
page.render('oncoprint.png');
phantom.exit();
}, 2000);
}
});
然后在我的 Ubuntu 控制台中输入:
phantomjs oncoprintsave.js
这只是一个有代表性的例子。我正在制作一个闪亮的应用程序,我计划在其中将一些 D3 可视化捕获为 png(服务器端)并将它们包含在 rmarkdown-PDF 报告中。我已经尝试 r2d3::save_d3_png 并得到空白图像,我试图通过直接调用 htmlwidgets::saveWidget 来解决它,然后在结果 html 页面上向 phantomjs 发送系统调用。
我怀疑我的 D3 脚本中的错误导致它失败,但我对 D3 还太陌生,无法识别它,如果我添加 --debug=true 选项,则不会出现错误。
我从来没有解决过这个问题,但我切换到 chrome 并得到了我想要的:
google-chrome --headless --disable-gpu --screenshot --window-size=1920,1080 https://jonkatz2.github.io/2019/03/11/D3-oncoprint