首页 > 解决方案 > 在Angular 2中将Base64字符串转换为pdf

问题描述

我有一个 webapi,它在 base64 和角度 2 中返回一个字符串,我应该把它变成一个 pdf(并从浏览器下载它)。我能怎么做?

标签: angularpdfbase64

解决方案


我想你从后端得到了 blob:

const headers = new HttpHeaders()
  .set('Accept', 'application/pdf');

this.http.get(`${BASE_URL}/pdf`, {observe: 'response', headers, responseType: 'arraybuffer'});

您可以执行以下操作:

const blob = new Blob([base64String], {type: 'application/pdf'});

然后下载pdf文件:

if (window.navigator && window.navigator.msSaveOrOpenBlob) {
      window.navigator.msSaveOrOpenBlob(blob); //For IE browser
    }
    const linkElement = document.createElement('a');
    const url = window.URL.createObjectURL(blob);
    linkElement.setAttribute('href', url);
    linkElement.setAttribute('download', 'file.pdf');
    const clickEvent = new MouseEvent('click', {
      'view': window,
      'bubbles': true,
      'cancelable': false
    });
    linkElement.dispatchEvent(clickEvent);

推荐阅读