繁体   English   中英

如何在转换为pdf的ejs模板中添加图像

[英]how to add image in ejs template which is converted to pdf

我正在使用获取多个数据的 api 将我的 ejs 模板转换为 pdf。 我可以将来自 api 的 json 响应中的数据插入到模板中。 但我面临图像问题。 该图像是一团 html 画布。 我将其转换为 base64 并通过另一个 api 将其名称插入到 db 中。

我的api响应,

  "data2": [
            {
                "graph_img": "http://localhost:5000/public/images/graph_images_for_pdf/2021102161712PM.jpeg"
            }
        ],

我如何在 ejs 模板中使用它,

<% dataw.data2.forEach(function(a){ %>   
                        <div class="row">
                            <div class="col-sm-6"> 
                                <div class="mb-4 pull-left">

                                   <div >  <%= a.graph_img %>  </div>
                                </div>
                            </div>
                          
                        </div>
                        <% }); %>

这给了我 pdf 中的 http://localhost:5000/public/images/graph_images_for_pdf/2021102161712PM.jpeg。 如何改为添加图像。

  var fs = require ("fs");
      var image = graphimage;
      var bitmap = Buffer.from(image, 'base64');
       var _path = "./public/images/graph_images";
      var imagename = nmae+".jpeg";
      fs.writeFileSync(_path+'/'+imagename, bitmap);

这就是我将文件保存在我的 api 中的方式。 其中 graphimage 是来自前端的字符串。

需要去掉字符串开头的base64签名标签,才能成功解析。 代码应该是这样的

var fs = require ("fs");
      var image = graphimage.replace("data:image/jpeg", "");
      var bitmap = Buffer.from(image, 'base64');
       var _path = "./public/images/graph_images";
      var imagename = nmae+".jpeg";
      fs.writeFileSync(_path+'/'+imagename, bitmap);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM