Firebase Cloud 函数中的自定义字体,用于创建 PDF

问题描述

我正在尝试在 Firebase 云函数中使用 PDFKit 创建带有 1 行文本和自定义字体的 pdf。我创建了文件夹“fonts”并将 ttf 添加到其中。只有我经常在日志中收到此错误

TestPdf 错误:ENOENT:没有这样的文件或目录,请在以下位置打开“upc-a.tff” Object.openSync (fs.js: 462: 3) at Object.readFileSync (fs.js: 364: 35) 在

有问题的函数如下所示:

function generateBarcode (doc) {
   doc
   .font ('fonts / upc-a.tff')
     .fontSize (50)
     .text (
       "Testtest2",80,780,{align: "center",width: 500}
     );
}

我已经尝试了一切。我在根文件夹中添加文件并尝试了以下选项:

  • .font ('fonts / upc-a.tff')
  • .font('./fonts/upc-a.tff')
  • .font('/fonts/upc-a.tff')
  • .font ('upc-a.tff')(当文件在根文件夹时)

这是文件夹的截图:

enter image description here

但一切都没有成功。有谁能帮帮我吗?

解决方法

问题似乎正在发生,因为您已正确创建了文件 upc-a.ttf,但是当您在函数 generateBarcode 中提供路径时,您提供的是路径 ./fonts/upc-a.tff - 一个路径错误的文件扩展名。它应该是 .ttf(TrueType 字体文件扩展名),因此您的文件未找到错误。

请将 .tff 更改为 .ttf,如下所示,这将解决您的问题。

function generateBarcode (doc) {
    doc
       .font('fonts/upc-a.ttf')
       .fontSize (50)
       .text(
           "Testtest2",80,780,{align: "center",width: 500}
       );
}