【问题标题】:Custom font in Firebase Cloud function for creating a PDFFirebase Cloud 函数中用于创建 PDF 的自定义字体
【发布时间】:2021-04-20 14:26:29
【问题描述】:

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

TestPdf 错误:ENOENT:没有这样的文件或目录,请在以下位置打开“upc-a.tff” Object.openSync (fs.js: 462: 3) 在 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')(当文件位于根文件夹时)

这是文件夹的屏幕截图:

但一切都没有成功。有没有人可以帮助我?

【问题讨论】:

  • 您是否在functions 文件夹下添加了fonts 文件夹?通常,.font('./fonts/upc-a.tff') 在您这样做时应该可以工作。
  • 正常是​​什么意思?我创建了一个名为 fonts 的文件夹,并将 ttf 文件放在那里。还有其他方法吗?
  • 您在哪里创建了文件夹fonts?它的父母是什么?你能显示你的项目文件夹的屏幕截图吗?
  • functions 文件夹中是 createInvoice.js 文件,其中包含相关函数(我更新了问题)。如您所见,文件夹 ./fonts/upc-a.tff 在那里可用。
  • AFAIK 它应该可以工作。唯一引起我注意的是您将顶部文件夹命名为“frontend”,但我想这是一个 Firebase 项目。

标签: firebase google-cloud-functions node-pdfkit


【解决方案1】:

问题似乎正在发生,因为您已正确创建文件 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}
       );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 2018-01-02
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    相关资源
    最近更新 更多