如何从url拍摄网页快照?

时间:2019-08-13 06:50:18

标签: javascript c# html canvas html2canvas

我想从url拍摄网页快照。网址是一个动态的HTML网页。基本上,我们需要该网页的img。

我想将html页面转换为c#中的图像,但无效。  我首先使用streamreader和NReco.ImageGenerator读取了html,试图将其转换为字节并最终转换为图像。这是行不通的。 最后,我尝试从html网页内部使用javascript将html转换为画布。

function report() {
let region = document.querySelector("body");
 html2canvas(
 $('body'),
 {allowTaint: true, logging: true,'onrendered': function (canvas) 
 {}}).then( //getting problem here at then
 function (canvas) {
 let jpgUrl = canvas.toDataURL();
  console.log(jpgUrl);
  var text = "bottom-right Brochure1";
 var imageName = text + '.jpg';
 download(jpgUrl,imageName, "image/png");
 }

代码说明-使用js将在html页面中获取body元素的快照。获取URL,然后从URL创建画布。并自动下载。但是我面临一个问题-------“ html2canvas(...),那不是一个函数” ..我不知道为什么会这样。请帮忙。

1 个答案:

答案 0 :(得分:1)

由于所有现代浏览器中的跨域资源共享(CORS)限制,这不能完全在客户端上完成。您需要在服务器端完成此任务。要使用NodeJS在服务器上的javascript中做到这一点,有几个npm软件包可以提供帮助,例如:node-server-screenshot,PhantomJS等