请不要将其标记为重复,因为我尝试了很多 在StackOverflow / Google上编写的内容以及其他内容均无法解决。
我的要求 :
将HTML div转换为图像并将图像转换为PDF。 因此,目前我能够将HTML div转换为Image并将该Image转换为PDF部分成功。
我正在使用 JsPDF 将图像转换为PDF。
下面是我有2种情况的代码:
下面我分享了这两种情况的图像.. !!!
Plz,请帮我解决这个问题。
<script type="text/javascript">
$(document).ready(function () {
setTimeout(function(){
downloadImage();
},1000)
});
var base64 = "";
function downloadImage(){
//Case 1: Where the image gets shrinked.
html2canvas(document.querySelector("#dvContainer")).then(canvas => {
a = document.createElement('a');
document.body.appendChild(a);
base64 = canvas.toDataURL();
var doc = new jsPDF();
var image = base64;
doc.addImage(image, 'JPEG', 10, 10, 180, 160);
doc.save('Report');
});
//Case 2: Where only 1 page gets loaded.
html2canvas(document.querySelector("#dvContainer")).then(canvas => {
a = document.createElement('a');
document.body.appendChild(a);
base64 = canvas.toDataURL(wid = canvas.width, hgt = canvas.height);
var doc = new jsPDF('p','pt','a4');
var image = base64;
var hratio = hgt/wid;
var width = doc.internal.pageSize.width;
var height = width * hratio;
doc.addImage(image, 'JPEG',20,20, width, height);
doc.save('Report');
});
}
</script>
答案 0 :(得分:0)
在这里,尽我所能,但没有一个起作用。通过调整图像大小将纯图像转换为pdf比将html页面转换为pdf容易得多。当前jsPDF建议使用doc.html()
代替addHtml()
。
无论如何,最后,我最终使用了A3而不是A4。
let doc = new jsPDF('p','pt','a3');