使用pdfkit时,我可以在同一段落中混合字体权重吗?

时间:2013-12-15 19:22:10

标签: javascript node.js pdf pdf-generation node-pdfkit

我试图在 pdfkit

中找到一种方法来使用粗体字体进行内联强调

不幸的是,我找不到一种方法来改变字体而不强制换行(对于内联强调不好......)。

我正在尝试类似的事情:

pdf.text('Hello ', LEFT, 200).font(bold).text('World!');

但这会输出

  

您好

     

世界

我也在挖掘源头,但找不到任何阻止这种情况的选择。

任何人都有任何想法或解决方法来解决这个问题吗?

修改

现在我能想到的只是一个丑陋的黑客看起来像这样:

pdf.text('Hello ', LEFT, 200).moveUp(1).font(bold).text('World!', {indent: pdf.widthOfString('Hello ')});

这是有效的,但远非灵活和可维护。

2 个答案:

答案 0 :(得分:13)

基本上你需要用lineBreak:false,

设置选项
pdf.text('Hello ', LEFT, 200, {
    //here it is, 
    lineBreak : false
}).font(bold).text('World!');

这将使Hello not break行,所以下一个World将打印在同一行。

我发现了这个:

node_modules\pdfkit\js\mixins\text.js, line 130

pdfkit版本:0.2.6

答案 1 :(得分:5)

处理此问题的记录方法是继续

pdf.font('Helvetica-Bold').text('Hello ', {
    continued: true
}).font('Helvetica').text('World!');

http://pdfkit.org/docs/text.html