【问题标题】:How to: output Euro symbol in pdfkit for nodejs如何:在 pdfkit 中为 nodejs 输出欧元符号
【发布时间】:2013-09-10 12:07:16
【问题描述】:

是否可以在 nodejs 的 pdfkit 中显示欧元符号而无需嵌入外部字体?

我正在使用 pdfKit 生成发票,并希望在我的货币金额前加上欧元符号 (€)。

我尝试了很多方法,但都没有奏效:

doc.font('Helvetica-Bold')
    .fontSize(12)
    .text('€', 10, 10); // Alt+0128 on keypad

doc.font('Helvetica-Bold')
    .fontSize(12)
    .text('\u20AC', 10, 10);

【问题讨论】:

  • 您能提供更多细节吗?也许a small example 证明了这个问题?

标签: node.js pdfkit euro


【解决方案1】:

原来是字体问题:

unicode 有效,但您必须确保您使用的字体 包括您要使用的字符。与您的操作系统不同, PDFKit 不做任何自动字体替换。

来源:Reddit Thread/u/devongovett评论


我测试了 pdfkit 中包含的两种字体。 “Helvetica-Bold”和“Times-Roman”都不适用于 unicode 符号。我在documentation for fonts 中注意到您可以添加自己的字体,所以我试了一下Cardo Font(托管在 Google 字体上),因为它支持许多 unicode 字符。

果然,它奏效了。这是我用于测试的脚本(确保您有可用的 Cardo 字体):

var PDFDocument = require('pdfkit');
var doc = new PDFDocument();

doc.registerFont('Cardo', 'Cardo/Cardo-Regular.ttf')

doc.font('Cardo')
    .fontSize(20)
    .text('Testing [\u20AC]', 10, 10);

doc.write('out.pdf');

如果您打算使用 Helvetica-Bold,请在别处下载该字体的副本(确保它支持您所追求的 unicode 字符)并像我使用 Cardo 字体一样注册它。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 2014-06-17
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多