Загрузите файл PDF, созданный с использованием библиотеки pdfkit, в nodejs через angular веб-интерфейс - PullRequest
2 голосов
/ 28 января 2020
async createpdf(){

const doc = new PDFDocument();

doc.pipe(fs.createWriteStream('example.pdf'));

// content of the pdf

doc.end();
}

Я использовал nodejs и angular для своего проекта. Чтобы экспортировать PDF, я использовал библиотеку pdfkit и экспортировал PDF. Но мне нужно скачать pdf при нажатии на кнопку в angular интерфейсе. Можете ли вы объяснить, как скачать PDF при нажатии кнопки в angular интерфейсе?

это код, который я добавил в 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>

1 Ответ

0 голосов
/ 28 января 2020

После того, как 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); 
});

это простой пример, но имейте в виду, что в дальнейшем нужно будет вернуть уникальный идентификатор для загрузки указанного файла c или выполнить любую другую проверку подлинности.

...