Angular 按表单数据在s3 bucket上上传html2pdf生成的pdf文件
我现在的剧本是Angular 按表单数据在s3 bucket上上传html2pdf生成的pdf文件,angular,typescript,angular6,angular7,angular8,Angular,Typescript,Angular6,Angular7,Angular8,我现在的剧本是 exportPDF(id) { const options = { filename: 'INV' + id + '.pdf', image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2, dpi: 300, letterRendering: true, useCORS: true }, jsPDF: { unit: 'in', format: 'letter', o
exportPDF(id) {
const options = {
filename: 'INV' + id + '.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: {
scale: 2, dpi: 300,
letterRendering: true,
useCORS: true
},
jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
}
var element = document.getElementById('export-content');
var d = html2pdf().from(element).set(options).save();
const formData: FormData = new FormData();
formData.append('file', d);
// Service for upload file in s3 bucket
this._uploadService.upload('invoice', formData).subscribe(res => {
console.log(res);
}, (error: any) => {
console.log(error, 'error');
});}
我想将这个生成的pdf文件存储到s3存储桶中,并从s3通过附件发送电子邮件。我不想在db上存储任何blob数据,只想在db中存储S3URL。请帮忙
提前谢谢
通过将blob字符串转换为文件找到了一些解决方案,但无法将响应字符串存储在全局变量中,以便在文件中进行转换并通过api调用发送
this.blobString: any;
html2pdf().from(element).set(options).toPdf().output('datauristring').then(function (res) {
this.blobString = res;
// Service for upload file in s3 bucket
this._uploadService.upload('invoice', this.blobString).subscribe(res => {
console.log(res);
}, (error: any) => {
console.log(error, 'error');
});
});
console.log(this.blobString);
正在控制台中取消查找。或者如何在全局中设置工作者数据。如果您正在使用承诺,则承诺响应之前的console.log触发器会将其更改如下:
this.blobString: any;
html2pdf().from(element).set(options).toPdf().output('datauristring').then(function (res) {
this.blobString = res;
console.log(this.blobString);
});
在控制台中未定义this.blobString,我需要在另一个控制台中访问this.blobStringfunction@SurajParise然后在console.log(this.blobString)之后调用函数;上面的代码对我很有用,我在控制台中没有未定义。我也尝试过这样做,请参阅我更新的问题,在函数内部编写,但出现错误。\u uploadService.upload未定义。