使用 pdfkit 时,我可以在同一段落中混合字体粗细吗?
Posted
技术标签:
【中文标题】使用 pdfkit 时,我可以在同一段落中混合字体粗细吗?【英文标题】:Can I mix font weights in the same paragraph when using pdfkit? 【发布时间】:2014-01-03 02:55:42 【问题描述】:我正在尝试找到一种方法,在 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 '));
这是可行的,但远非灵活和可维护。
【问题讨论】:
【参考方案1】:处理此问题的记录方法续。
pdf.font('Helvetica-Bold').text('Hello ',
continued: true
).font('Helvetica').text('World!');
http://pdfkit.org/docs/text.html
【讨论】:
这应该设置为真正的解决方案。谢谢【参考方案2】:基本上你需要用 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
【讨论】:
太棒了!有趣的是,文档中根本没有提到这一点:pdfkit.org/docs/text.html#styling 即使它适用于同一行,它也会弄乱下一行。以上是关于使用 pdfkit 时,我可以在同一段落中混合字体粗细吗?的主要内容,如果未能解决你的问题,请参考以下文章