ami*_*ros 4 javascript html2canvas ionic-framework ionic4
我正在尝试在 Ionic 4 应用程序中捕获 HTML 图像。我尝试使用html2canvas
,但是,它不起作用并在控制台中显示此输出:
这是我的代码:
var element = document.getElementById('capture');
html2canvas(element).then(canvas => {
var imgData = canvas.toDataURL("image/png");
this.socialSharing.share(null, null, imgData);
});
Run Code Online (Sandbox Code Playgroud)
我有同样的问题。我设法通过将代码移出<ion-content>
标签来“修复”它。我的猜测是 html2canvas 不呈现 shadow DOM 元素(<ion-content>
从 Ionic 4 开始就是这种情况)。
例如,这会输出一个空画布:
<ion-content>
<div id="capture">
<h1>Test</h1>
</div>
</ion-content>
Run Code Online (Sandbox Code Playgroud)
但以下工作:
<div id="capture">
<h1>Test</h1>
</div>
Run Code Online (Sandbox Code Playgroud)
这不是一个真正的解决方案,但它足以让我使用......
小智 6
我也在尝试这个组件,但它不起作用。我找到的解决方案是使用 dom-to-image 库。我附上了一个我所做的例子。您只需要输入要转换的文件扩展名。
https://www.npmjs.com/package/jspdf
https://www.npmjs.com/package/dom-to-image
import * as jsPDF from 'jspdf';
import domtoimage from 'dom-to-image';
exportPdf(){
const div = document.getElementById('pdf');
const options = { background: 'white', height: 845, width: 595 };
domtoimage.toPng(div, options).then((dataUrl) => {
//Initialize JSPDF
const doc = new jsPDF('p', 'mm', 'a4');
//Add image Url to PDF
doc.addImage(dataUrl, 'PNG', 0, 0, 210, 340);
doc.save('pdfDocument.pdf');
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5125 次 |
最近记录: |