javascript - canvas.toDataURL() 没有返回完整的图像 - 它在顶部裁剪
问题描述
I am using canvas2html to convert one of my sections:
<div className="plan-businessInfo" id="businessInfo-main">
.
.
.
//SOME JSX//
</div>
成base64字符串。这是我正在使用的方法:
const onExportClick = e => {
e.preventDefault();
const businessInfo = document.getElementById("businessInfo-main");
html2canvas(businessInfo).then(canvas => {
const imgData = canvas.toDataURL();
const doc = new jsPDF("p", "mm", "a4");
console.log(imgData); // GETTING IMAGE string
// GETTING PDF PAGE SIZE
const widthPDF = doc.internal.pageSize.getWidth();
const heightPDF = doc.internal.pageSize.getHeight();
//ADDDING IMAGE WITH SIZE ON THE PDF PAGE
doc.addImage(
imgData,
"png",
0,
0,
widthPDF /**width */,
heightPDF /**heigth */
);
doc.save("abc.pdf");
});
};
问题是图像在 PDF 中看起来很糟糕,而且 base64 字符串也不完整。
- 以下是该部分在网站中的外观:
- 以下是在线 base64-to-image 解析器如何显示图像 ( https://codebeautify.org/base64-to-image-converter ):
- 这是它在 PDF 中的外观:
首先任何想法为什么base64字符串没有完成?额外的问题是如何在 PDF 已满时将其放入 PDF 中?
解决方案
推荐阅读
- ios - 支持 Detox 框架上的 TouchID 测试
- vba - VBA 组合列
- git - 在 github 中使用两个帐户时访问被拒绝
- xcode - Flutter App IOS Release Build 错误:缺少所需的图标文件
- vba - VBA VeryHidden 多个选项卡
- python - 使用 Python 查找和更改 XML 文件中的属性
- android - 在android中以编程方式杀死另一个应用程序及其所有服务
- r - 使用R中旧向量中的字符串创建一个新向量
- amazon-web-services - 无法在 Amazon Lightsail VPS 上打开 HTTPS 443 端口 - Ubuntu 16.04 Base OS
- python - python unittest 模拟/修补