Pdfmake服务器端Firebase功能

问题描述 投票:0回答:1

[嗨,我正在尝试在Firebase云功能中实现pdfmake,我已遵循本指南https://pdfmake.github.io/docs/getting-started/server-side/这是我的代码:

const fonts = {
  Dosis: {
    normal: 'fonts/a.ttf',
    bold: 'fonts/a.ttf',
    italics: 'fonts/a.ttf',
    bolditalics: 'fonts/a.ttf',
      }
    };

   const printer = new Printer(fonts);
   var pdfDoc = printer.createPdfKitDocument(myPdfStructure);
   pdfDoc.pipe(fs.createWriteStream('document.pdf'))
   pdfDoc.end()

这是我的项目内的函数文件夹:

folder

问题是我总是会收到此错误:

> Error: ENOENT: no such file or directory, open 'fonts/a.ttf'
at Object.fs.openSync (fs.js:646:18)
at Object.fs.readFileSync (fs.js:551:33)
at Function.open (/srv/node_modules/pdfkit/js/pdfkit.js:3236:16)
at PDFDocument.font (/srv/node_modules/pdfkit/js/pdfkit.js:3306:33)
at FontProvider.provideFont (/srv/node_modules/pdfmake/src/fontProvider.js:62:58)
at /srv/node_modules/pdfmake/src/textTools.js:319:27
at Array.forEach (<anonymous>)
at measure (/srv/node_modules/pdfmake/src/textTools.js:298:13)
at TextTools.buildInlines (/srv/node_modules/pdfmake/src/textTools.js:32:17)
at DocMeasure.measureLeaf (/srv/node_modules/pdfmake/src/docMeasure.js:235:28)

您知道如何解决吗?

firebase pdf google-cloud-functions server-side pdfmake
1个回答
0
投票
我建议将字体文件夹移动为功能的直接子类。通常,对于TypeScript设置,lib

only包含生成的JS文件,仅包含其他内容。这使您可以将整个文件夹置于源代码控制之外,因为您可以轻松地重建所有文件夹。

使用功能下的字体,您应该能够将它们引用为“ ./fonts/a.ttf”。
© www.soinside.com 2019 - 2024. All rights reserved.