javascript - 如何在 Canvas 上实现条形码

标签 javascript jquery html canvas

我需要一些帮助来在我的 Canvas 中实现条形码。

我正在使用 ean13.js 生成条形码,如果将其添加到 div (#controlDiv),它会像魅力一样工作。

但是我有一个 Canvas ,我想在其中添加这个“div”。

我的 HTML

<div>
   <div>
      <input type="button" id="btnGenerateStuffInCanvas" value="Add Stuff"/>
      <input type="button" id="btnGenerateEAN13" value="Generate EAN"/>
   </div>
   <div id="controlDiv">
   </div>
   <canvas id="myCanvas"></canvas>
</div>

最佳答案

试试这个。这个对我有用。可以使用 Data URI 模板来创建 SVG 图像。

var canvas = document.getElementById('canvas');
var ctx    = canvas.getContext('2d');

var data   = '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">' +
               '<foreignObject width="100%" height="100%">' +
                 '<div xmlns="http://www.w3.org/1999/xhtml" style="font-size:40px">' +
                   '<div id="controlDiv">s</div>' +
                 '</div>' +
               '</foreignObject>' +
             '</svg>';

var DOMURL = window.URL || window.webkitURL || window;

var img = new Image();
var svg = new Blob([data], {type: 'image/svg+xml;charset=utf-8'});
var url = DOMURL.createObjectURL(svg);

img.onload = function () {
  ctx.drawImage(img, 0, 0);
  DOMURL.revokeObjectURL(url);
}

img.src = url;

替换数据中的 html 元素,其中 div <div id="controlDiv">s</div> 元素存在。

DEMO

我想这会对你有帮助。

关于javascript - 如何在 Canvas 上实现条形码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25759426/

相关文章:

javascript - AngularJS:如何仅过滤具有特定 3 个字符值的项目?

jquery - 如何使用滚动条将 div 固定到另一个 div

Javascript 语法错误意外标记(文件输入)

javascript - 使用 JavaScript 查找最大变量

javascript - 如何在谷歌地图上添加图像

javascript - 外部变量和 jQuery 函数内部的作用域

html - 如何制作可滚动的弹出框?

javascript - 如何将带有 django 的 react.js webpack 部署到 heroku?

javascript - JQuery - 过滤下拉列表,如果找不到结果则插入文本

javascript - 与 React hooks 的 setState 回调等效