您如何在客户端应用中创建可下载的pdf?

时间:2019-11-01 12:02:24

标签: html node.js angular pdf

我们对管理工具的要求之一是创建一个可以填写并翻译为可下载pdf文件的表格。 (确切的条款和条件,输入字段为空白)。

我进行了一些谷歌搜索,并尝试在html和css中创建表单,然后使用html2canvas包将其转换为画布。然后,我使用jspdf软件包将其转换为pdf文件。问题是我无法使其适应和调整为具有正确页边距的a4格式。如果我花一些时间,我肯定可以找到一个可行的解决方案。

但是,我真正的问题是你们将如何解决这个问题?是否有做这件事的第三方应用程序/服务?还是您会在服务器端完成所有这些工作?我们当前的应用程序正在使用带有Firebase的angular 7作为后端。

干杯!

2 个答案:

答案 0 :(得分:1)

我能够使用npm软件包pdfmake根据与表单交互时用户提供的用户信息创建动态pdf。 (我正在使用React)它在新选项卡中打开了pdf,用户可以保存pdf。在另一个应用程序(仍然是React)中,

我使用了相同的包装来创建收据,因此您可以自定义“页面”的大小。我们创建了pdf并使用getBase64()方法,并将pdf作为电子邮件附件发送。

答案 1 :(得分:0)

 My service function:
 getEvidenceFile(id: number, getFileContent: boolean) {

 return this.http.get(environment.baseUrl + ‘upload’ + ‘/’ + id , {responseType: ‘blob’ as ‘json’})
 .map(res => res);
 }

 My component function called from the selected item of a FileDownload…
 FileDownload(event: any) {

 // const blob = await this.callService.getEvidenceFile(event.target.value, true);
 // const url = window.URL.createObjectURL(blob);

 this.callService.getEvidenceFile(event.target.value, true).subscribe(data => {

 var binaryData = [];
 binaryData.push(data);
 var downloadLink = document.createElement(‘a’);
 downloadLink.href = window.URL.createObjectURL(new Blob(binaryData));
 document.body.appendChild(downloadLink);
 downloadLink.click();

 });
 }