在使用pdfkit时,我能否在同一段落中混合使用不同字重的字体?

19

我试图找到一种方法,在 pdfkit 中使用加粗字体来强调文本,但不会改变行意义(这对于内联强调非常不好)。

不幸的是,我无法找到一种在不强制换行的情况下更改字体的方法。

我尝试了以下代码:

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

但是这会输出

Hello

World

我也翻遍了源代码,但找不到任何选项来防止这种情况。

有人有什么想法或解决方法来解决这个问题吗?

编辑:

到目前为止,我能想到的唯一丑陋的解决办法看起来像这样:

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

这个功能虽然能用,但远非灵活和易于维护。

2个回答

32

处理这个问题的正式方法是继续

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

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


1
这应该被设置为真正的解决方案。谢谢。 - Yairopro

18

基本上,您需要设置选项以 lineBreak: false 的方式。

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

这将使"Hello"不换行,所以下一个"World"会打印在同一行。

我在这里找到:

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

pdfkit 版本:0.2.6


太好了!有趣的是,文档中根本没有提到这一点:http://pdfkit.org/docs/text.html#styling - m90
1
尽管它可以在同一行工作,但会破坏下一行。 - kushdilip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接