tiyan 发表于 2017-12-30 14:37:36

PHP - jsPDF+html2canvas实现网页截图导出PDF

$("#btn-html2canvas").click(function() {  var p = $(this).data("name");
  // console.log(p);
  varfilename = p + "_fansImages.pdf";

  // 将>  html2canvas(document.getElementById("content"), {
  // 渲染完成时调用,获得 canvas
  onrendered: function(canvas) {
  // 从 canvas 提取图片数据
  var imgData = canvas.toDataURL('image/jpeg');
  var canWidth = canvas.width;
  var canHeight = canvas.height;
  var arrDPI = js_getDPI();//获取显示器DPI
  var dpiX = 96;
  var dpiY = 96;
  if(arrDPI.length>0){
  dpiX = arrDPI;
  dpiY = arrDPI;
  }
  // var doc = new jsPDF("p", "mm", "a4");
  var doc = new jsPDF('', 'in', [(canWidth+10)/dpiX,(canHeight+10)/dpiY]);//设置PDF宽高为要显示的元素的宽高,将像素转化为英寸
  // doc.addImage(imgData, 'JPEG', 0, 0,210,297);
  doc.addImage(imgData, 'JPEG', 0, 0,0,0);
  doc.save(filename);
  },
  background : "#f7f7f7"    //设置PDF背景色(默认透明,实际显示为黑色)
  });
  });
  function js_getDPI() {
  var arrDPI = new Array();
  if (window.screen.deviceXDPI != undefined) {
  arrDPI = window.screen.deviceXDPI;
  arrDPI = window.screen.deviceYDPI;
  }
  else {
  var tmpNode = document.createElement("DIV");
  tmpNode.style.cssText = "width:1in;height:1in;position:absolute;left:0px;top:0px;z-index:99;visibility:hidden";
  document.body.appendChild(tmpNode);
  arrDPI = parseInt(tmpNode.offsetWidth);
  arrDPI = parseInt(tmpNode.offsetHeight);
  tmpNode.parentNode.removeChild(tmpNode);
  }
  return arrDPI;
  }
页: [1]
查看完整版本: PHP - jsPDF+html2canvas实现网页截图导出PDF