一尘不染

如何:在pdfkit中为Node.js输出欧元符号

node.js

是否可以在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);

阅读 244

收藏
2020-07-07

共1个答案

一尘不染

原来是字体问题:

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

来源:/ u / devongovett发表的Reddit
Thread
评论


我测试了pdfkit附带的两种字体。“ Helvetica-Bold”和“ Times-
Roman”均不适用于unicode符号。我在字体文档中注意到可以添加自己的字体,因此我选择了Cardo
Font
(托管在Google
Fonts上),因为它支持许多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字体。

2020-07-07