如何:在pdfkit中为nodejs输出欧元符号

时间:2013-09-10 12:07:16

标签: node.js pdfkit euro

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

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

我尝试了很多方法而且都没有效果:

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

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

1 个答案:

答案 0 :(得分:12)

原来这是一个字体问题:

  

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字体。