从html创建的图像未正确放置在画布上

时间:2018-11-15 04:20:23

标签: javascript html canvas jspdf html2canvas

我正在使用html2canvas.js从html截屏,而jspdf.js则是pdf。 我的html如下所示

<div id="panel-item-all-annotations">
   <div class="panel-body" id="" style="width: 100%;">
         {{--some html with image--}}
   </div>
</div>
<canvas width="800" height="500" style="display: block;"></canvas>

我正在使用画布通过如下所示的JS代码放置div#panel-item-all-annotations的图像

html2canvas(document.querySelector("#panel-item-all-annotations"), {canvas: canvas}).then(function(canvas) {
        console.log('Drew on the existing canvas');
});

但是它不能在画布上正确放置图像。它将其放置在画布的底部和右侧,如下所示 Improper image place on canvas

html2canvas.js网址:https://html2canvas.hertzen.com/ jspdf:https://github.com/MrRio/jsPDF

1 个答案:

答案 0 :(得分:0)

我不确定为什么要这么做。肯定还有其他事情正在发生。将其分解为超简单的东西似乎可行。这里有一个例子:

https://lab-keqpanlmmw.now.sh

这是代码,但不会在StackOverflow上运行。

function go() {
  let input = document.querySelector("#input");
  let output = document.querySelector("#output");
  html2canvas(input, {
    canvas: output
  });
}
#input {
  background-color: orange;
  color: white;
  padding: 1em;
  font-family: sans-serif;
  max-width: 200px;
}

#output {
  border: 1px solid black;
  width: 300px;
  height: 200px;
  margin-top: 1em;
}
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<div id="input">
  {{--some html with image--}}
</div>
<div>
  <button onclick="go()">Go</button>
</div>
<div>
  <canvas id="output"></canvas>
</div>