首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDF导出AngularJS格式

PDF导出AngularJS格式
EN

Stack Overflow用户
提问于 2014-07-18 23:17:34
回答 1查看 3.8K关注 0票数 4

我正在尝试将DOM中的<svg>元素导出到客户端生成的PDF文件中。我尝试了不同的库,pdfmake非常接近我想要的。使用这个库或任何其他库的任何工作示例都会很有帮助。

代码语言:javascript
复制
    downloadPdf = function() {
        //var docDefinition = { content: 'This is an sample PDF'};
        var html = d3.select("svg")
          .attr("version", 1.1)
          .attr("xmlns", "http://www.w3.org/2000/svg")
          .node().parentNode.innerHTML;
        console.log(btoa(html));
        var imgsrc = 'data:image/svg+xml;base64,'+btoa(html);
        var docDefinition = {content: [{image: imgsrc}]}
        pdfMake.createPdf(docDefinition).open('Sample.pdf');    
   }    
EN

回答 1

Stack Overflow用户

发布于 2015-04-22 20:30:26

pdfMake不支持矢量图形。在这种情况下,您需要使用fabricJScanvg绕过画布,一旦您有了图像,您就可以将其放置在pdfMake中

代码语言:javascript
复制
// Create fabric instance
var canvas = new fabric.StaticCanvas( undefined, {
    width: 500,
    height: 500,
} );

// Load SVG document; add to canvas;
fabric.parseSVGDocument(<svg element>,function(objects, options) {
    var g = fabric.util.groupSVGElements( objects, options );
    var data = "";

    // ADD ELEMENTS
    canvas.add( g );

    // EXPORT TO DATA URL
    data = canvas.toDataURL({
        format: "jpeg"
    });

    console.log(data);

// REVIVER
},function(svg,group) {
    // possiblitiy to filter the svg elements or adapt the fabric object
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24828459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档