是否可以在 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);
最佳答案
原来是字体问题:
unicode works, but you have to make sure that the font you are using includes the characters you want to use. Unlike your operating system, PDFKit does not do any automatic font substitution.
来源: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 字体那样注册它。
关于node.js - 如何: output Euro symbol in pdfkit for nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18718559/