gpt4 book ai didi

html - 如何打印 Canvas 元素?

转载 作者:搜寻专家 更新时间:2023-10-31 02:25:13 26 4
gpt4 key购买 nike

我的页面上有一个 Canvas 元素。我在上面画了一个图像和用户输入的一些数据。按一下按钮,我想将 Canvas 发送到打印机,将其打印在纸上。我尝试使用这个插件:jQuery.printElement ,像那样:

按钮代码:

<a href="javascript:print_voucher()">PRINT</a>

'print_voucher()' 函数:

function print_voucher()
{
$("#canvas_voucher").printElement();
}

canvas_voucher 是我的 Canvas 元素的 ID。它打印了页面,但没有打印 Canvas 。我也试过这样使用它:

$("#canvas_voucher img").printElement();

但这甚至没有启动打印机。

那我该怎么做呢?如何打印 Canvas 的内容?

**编辑**下面是创建我的 Canvas 并尝试用它创建图像的代码:

function create_voucher(visitor_name, visitor_identity_num, unique_number)
{
var canvas = $("#canvas_voucher")[0];
if (canvas.getContext)
{
var ctx = canvas.getContext('2d');

// Draw image
var img = new Image();
img.src = 'https://someurl.com/image.jpg';

img.onload = function(){
ctx.drawImage(img,0,0);
ctx.fillStyle="#CCC";
ctx.font="bold 20px Arial";
ctx.fillText(visitor_name, 750, 270);
ctx.fillText(visitor_identity_num, 750, 295);

ctx.font="bold 25px Arial";
ctx.fillText(unique_number, 620, 325);
}
var voucher = canvas.toDataURL("image/png");
$("#voucher_img").attr("src", voucher);
} else {
alert('You need Safari or Firefox 1.5+ to see this.');
}

最佳答案

这会将 Canvas 转换为 .png 图像 URL 并在新的浏览器窗口中打开它

打印对话框被触发让用户打印页面。

function print_voucher(){
var win=window.open();
win.document.write("<br><img src='"+canvas.toDataURL()+"'/>");
win.print();
win.location.reload();
}

示例代码如下:

<style>
body{ background-color: ivory; }
canvas{border:1px solid red;}
</style>

<script>
$(function(){

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

ctx.fillStyle="gold";
ctx.strokeStyle="blue";
ctx.lineWidth=5;
ctx.rect(50,50,100,100);
ctx.fill();
ctx.stroke();

function print_voucher(){
var win=window.open();
win.document.write("<br><img src='"+canvas.toDataURL()+"'/>");
win.print();
win.location.reload();
}

$("#printVoucher").click(function(){ print_voucher(); });


}); // end $(function(){});
</script>

</head>

<body>
<canvas id="canvas" width=300 height=300></canvas><br>
<button id="printVoucher">Print</button>
</body>
</html>

关于html - 如何打印 Canvas 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17009946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com