16

在这个广阔的空间中,有没有人有幸成功地在 HTML 上创建了带有嵌入式 SVG 的 PDF?我一直在收到分段错误。

或者也许有任何其他方法可以将 SVG 嵌入到 HTML 文件中,然后将其导出为 PDF 而不是wkhtmltopdf

4

4 回答 4

15

我有类似的问题。似乎嵌入在 SVG 图像中的 javascript 会导致分段错误。

我正在使用pygal Python 模块生成 SVG 图。为了成功地从带有 SVG 图形的 HTML 生成 PDF,我必须做几件事:

  1. 删除对 j​​avascript 的引用。(在pygal的情况下,将 js=() 键添加到图形构造函数)。
  2. 在 svg 标签中指定图像大小,例如

    <svg ... width="300" height="200">
    

    (在 pygal 的情况下使用explicit_size关键字)

  3. 将 SVG 图像以 base64 编码形式嵌入到img标签中,例如

    <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0...">
    

我使用的是第 11 版的 wkhtmltopdf。

于 2012-10-19T20:27:40.800 回答
4

如果此修复对其他人不起作用,这就是在 Ubuntu 64 下使用 chartist.js 和 wkhtmltopdf 0.12.2.1 对我有用的方法。(感谢 Panokev)

在所有其他 JS 之前将此添加到您的 javascript 中。

{

Function.prototype.bind = Function.prototype.bind || function (thisp) {
    var fn = this;
    return function () {
        return fn.apply(thisp, arguments);
    };
};

明确设置图表 div 的宽度样式,例如 - style="width:950px;"

于 2015-10-24T17:11:56.700 回答
1

对..我终于成功了...所需要的只是对原始 eps 文件进行一些处理。我用illustrator打开文件并选择“展平透明度”..也许它的作用是展平文件的多层或其他东西..然后另存为svg ..它在PDF中呈现得很好..

如果有人遇到和我一样的问题,希望这会有所帮助。谢谢!:D

于 2012-09-12T20:57:50.953 回答
1

我们通过向 svg 除了 viewbox 属性添加宽度和高度属性来解决此问题。

于 2020-02-05T19:13:13.887 回答