是否可以捕获或打印html画布中显示的图像或pdf?
我希望通过画布生成图像,并能够从该图像生成png。
是否可以捕获或打印html画布中显示的图像或pdf?
我希望通过画布生成图像,并能够从该图像生成png。
当前回答
另一个有趣的解决方案是PhantomJS。这是一个可以用JavaScript或CoffeeScript编写脚本的无头WebKit。
其中一个用例是屏幕捕获:您可以通过编程方式捕获web内容,包括SVG和画布,和/或使用缩略图预览创建网站屏幕截图。
最好的切入点是屏幕捕获wiki页面。
这是一个很好的极地时钟示例(来自RaphaelJS):
>phantomjs rasterize.js http://raphaeljs.com/polar-clock.html clock.png
是否要将页面呈现为PDF?
> phantomjs rasterize.js 'http://en.wikipedia.org/w/index.php?title=Jakarta&printable=yes' jakarta.pdf
其他回答
如果您正在使用jQuery(很多人都这么做),那么您可以这样实现接受的答案:
var canvas = $("#mycanvas")[0];
var img = canvas.toDataURL("image/png");
$("#elememt-to-write-to").html('<img src="'+img+'"/>');
function exportCanvasAsPNG(id, fileName) {
var canvasElement = document.getElementById(id);
var MIME_TYPE = "image/png";
var imgURL = canvasElement.toDataURL(MIME_TYPE);
var dlLink = document.createElement('a');
dlLink.download = fileName;
dlLink.href = imgURL;
dlLink.dataset.downloadurl = [MIME_TYPE, dlLink.download, dlLink.href].join(':');
document.body.appendChild(dlLink);
dlLink.click();
document.body.removeChild(dlLink);
}
另一个有趣的解决方案是PhantomJS。这是一个可以用JavaScript或CoffeeScript编写脚本的无头WebKit。
其中一个用例是屏幕捕获:您可以通过编程方式捕获web内容,包括SVG和画布,和/或使用缩略图预览创建网站屏幕截图。
最好的切入点是屏幕捕获wiki页面。
这是一个很好的极地时钟示例(来自RaphaelJS):
>phantomjs rasterize.js http://raphaeljs.com/polar-clock.html clock.png
是否要将页面呈现为PDF?
> phantomjs rasterize.js 'http://en.wikipedia.org/w/index.php?title=Jakarta&printable=yes' jakarta.pdf
您可以使用jspdf将画布捕获为图像或pdf,如下所示:
var imgData = canvas.toDataURL('image/png');
var doc = new jsPDF('p', 'mm');
doc.addImage(imgData, 'PNG', 10, 10);
doc.save('sample-file.pdf');
更多信息:https://github.com/MrRio/jsPDF
我会使用“wkhtmltopdf”。它工作得很好。它使用webkit引擎(在Chrome、Safari等中使用),并且非常容易使用:
wkhtmltopdf stackoverflow.com/questions/923885/ this_question.pdf
就是这样!
试试看