Pdfmake серверная функция Firebase - PullRequest
0 голосов
/ 20 марта 2020

Привет, я пытаюсь реализовать pdfmake в облачной функции Firebase, я следовал этому руководству 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)

Знаете ли вы, как исправить?

1 Ответ

1 голос
/ 20 марта 2020

Я предлагаю переместить папку ваших шрифтов в качестве непосредственного потомка функций. Как правило, для установки TypeScript lib only содержит сгенерированные JS файлы и ничего больше. Это позволяет вам оставить всю папку вне контроля исходного кода, поскольку вы можете легко восстановить ее все.

Со шрифтами в функциях вы должны иметь возможность ссылаться на них как "./fonts/a.ttf".

...