【问题标题】:Upload html2pdf generated pdf file on s3 bucket by form data通过表单数据在 s3 存储桶上上传 html2pdf 生成的 pdf 文件
【发布时间】:2019-12-11 17:04:31
【问题描述】:

我当前的脚本是

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 中存储 s3 url。请帮忙。

提前致谢。

通过将 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);

在控制台中未定义。或者如何在全局中设置 Worker 数据。

【问题讨论】:

    标签: angular typescript angular6 angular7 angular8


    【解决方案1】:

    您正在使用 Promise,您的 console.log 在 Promise 响应之前触发,如下所示:

    this.blobString: any;
    html2pdf().from(element).set(options).toPdf().output('datauristring').then(function (res) {
      this.blobString = res;
      console.log(this.blobString);
    });
    

    【讨论】:

    • this.blobString 在控制台中未定义,我需要在另一个函数中访问 this.blobString
    • @SurajParise 然后在 console.log(this.blobString); 之后调用函数上面的代码对我有用,我没有在控制台中得到 undefined。
    • 我也试过这样,看看我更新的问题,写在函数里面,但是得到错误 this._uploadService.upload is undefined。
    猜你喜欢
    • 1970-01-01
    • 2017-09-17
    • 2018-12-30
    • 2019-09-21
    • 2018-04-12
    • 1970-01-01
    • 2021-06-20
    • 2015-07-23
    • 2018-08-13
    相关资源
    最近更新 更多