angular - 在Angular 2中将Base64字符串转换为pdf
问题描述
我有一个 webapi,它在 base64 和角度 2 中返回一个字符串,我应该把它变成一个 pdf(并从浏览器下载它)。我能怎么做?
解决方案
我想你从后端得到了 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);
推荐阅读
- c - 逆向工程 - sprintf 协助
- c++ - 为什么我有这个错误重载运算符?
- c++ - 我可以使用 linux gdb 调试我的 cpp 代码吗?如果是,我如何在通过对象调用的函数上保留断点
- image-processing - 无法为 scilab 安装 IPCV
- database - 如何使用多台笔记本电脑或虚拟机创建本地分布式数据库?
- java - 如何使用 JDBC 高效地导出/导入数据库数据
- javascript - 如何从反应列表中删除单个项目
- java - 如何使 jar 文件在任何装有 JVM 的计算机上都可以原谅?
- java - Source.fromIterator(...) 提供了迭代器线程安全
- vue.js - 具有动态百分比的 scss 中的线性梯度