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未定义。