我正在尝试使用 D3 和 wicked_pdf 呈现一些图表。当我启用 show_as_html 标志时,图表显示正常。但是当我渲染 PDF 本身时,只显示轴。图表区域本身是空白的。我知道 JavaScript 会执行,因为轴是在图表内容之后呈现的。
我尝试使用 canvg 将 SVG 转换为 Canvas 对象。
canvg($(this).find('#canvas')[0], $('<div>').append($(picture).clone()).html(), { ignoreMouse: true, ignoreAnimation: true })
没变。然后,我使用以下方法将 SVG 转换为 PNG 图像:
$(this).find('#chart').append("<img id='as' src='" + $(this).find('#canvas')[0].toDataURL() + "'>").show()
还是没有变化。但是,当我使用
wicked_pdf_image_tag
将类似的 png 图像作为静态图像插入文档时,渲染出正确的图像。如何让 wicked_pdf 正确渲染图像?只要图表正确呈现,我就不关心格式。
最佳答案
不幸的是,@TheMcMurder 的回答无济于事,因为 wicked_pdf 使用 wkhtmltopdf。此外,这实际上是 wkhtmltopdf 而不是 wicked_pdf 的问题。我一直在研究 Chart.js(使用元素)的相同问题。
这是 whhtmltopdf Google Group 上有关该问题的两个线程的链接
这是讨论 Github 上可能存在相同问题的线程
一些基本的搜索指向 phantom.js 作为可能的替代方案,但我还没有尝试过。
无法发布链接,因为我的代表太低,但谷歌已经覆盖
祝你好运,如果你取得任何进展,请告诉我们。
关于d3.js - Wicked_PDF 无法呈现 SVG、 Canvas 或 PNG 图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18310055/