node.js - 通过角度前端下载在nodejs中使用pdfkit库创建的PDF
问题描述
async createpdf(){
const doc = new PDFDocument();
doc.pipe(fs.createWriteStream('example.pdf'));
// content of the pdf
doc.end();
}
我为我的项目使用了 nodejs 和 angular。为了导出 pdf,我使用了 pdfkit 库并导出了 pdf。但是我需要在单击 Angular 前端的按钮时下载 pdf。您能解释一下单击角度前端中的按钮时如何下载pdf吗?
这是我在 component.ts 中添加的代码
exportToPdf(){
this.classroomService.createpdf();
this.subscription = this.classroomService.alertMessageOccured
.subscribe((alert) => {
if (alert.code == 200) {
this.alertService.clear();
this.alertService.success(alert.message);
} else {
this.alertService.clear();
this.alertService.error(alert.message);
}
})
}
这是按钮的代码
<button class="btn btn-primary btn-sm float-right" (click)="exportToPdf()">
Export to PDF
</button>
解决方案
成功创建pdf后,将成功/失败结果返回给您的客户端
为了让用户知道它是否失败,
如果成功,则向下载路线发出请求
app.get('/download-pdf', function(req, res){
const pdf_file = `${__dirname}/your_file.pdf`;
res.setHeader('Content-type', 'application/pdf');
res.download(pdf_file);
});
这是一个简单的示例,但请记住进一步返回一个唯一 ID 以下载特定文件,或进行任何其他身份验证检查。
推荐阅读
- javascript - 悬停在不同元素上时显示特定的弹出框
- swift - 如何获取我的 GameScene 的 safeAreaLayout 信息?
- yaml - 如果发生一系列失败的作业,如何在 Gitlab CI 中抑制后续管道电子邮件?
- git - 从分支中删除提交
- jestjs - 没有回调作为参数的模拟函数
- amazon-web-services - 如何跨不同的名称服务器同步记录?
- javascript - 如何使用从 HTML 文件到 js 文件的 JS 变量?
- jekyll - 与 kramdown 解析器相关的 jekyll 错误构建页面
- reactjs - React Material-Table 自定义分页不允许覆盖默认 rowsPerPage 值
- react-native - 如何在 Redux 操作 React Native 中使用 useNavigation() Hook