node.js - 如何: output Euro symbol in pdfkit for nodejs

标签 node.js pdfkit euro

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

相关文章:

python - 从 html 转换为 pdf 的页码 - pdfkit,python/django

node.js - 在 Firebase Cloud Functions 上使用 PDFMake 的 promise

jquery - 计算,用逗号替换点

php - 如何解决 €25.99 vs 25.99€ preg_match 问题?

node.js - NGINX、边缘、HAPRoxy

javascript - Socket.io 设置导致数百个传输轮询 GET 请求

javascript - Node Js Express 遍历数组

ruby-on-rails - PDFKit wkhtmltopdf :root_url Unknown long argument --root-url

javafx - 如何在 javafx 表中显示欧元货币符号 €

node.js - 为什么 nodejs express post 请求中 'body' 为空?