[嗨,我正在尝试在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()
这是我的项目内的函数文件夹:
问题是我总是会收到此错误:
> 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)
您知道如何解决吗?
only包含生成的JS文件,仅包含其他内容。这使您可以将整个文件夹置于源代码控制之外,因为您可以轻松地重建所有文件夹。
使用功能下的字体,您应该能够将它们引用为“ ./fonts/a.ttf”。