Perl使用PDF::TextBlock模块时如何设置文本块的字体大小
解决方案
你需要在PDF::TextBlock::Font初始化的参数列表里添加size参数即可生效,之前配置不生效通常是两个原因:
- 你只给粗体别名
b的字体配置了参数,没有给默认使用的default字体配置,文本没有显式指定粗体的话不会走b字体的规则 - 没有把size参数写在正确的
PDF::TextBlock::Font初始化的哈希结构里
修改后的参考代码如下:
use PDF::TextBlock; my $tb = PDF::TextBlock->new({ pdf => $pdf, page => $page, x => 20, y => 200, w => 550, fonts => { # 配置默认字体及大小,普通文本默认走这个配置 default => PDF::TextBlock::Font->new({ pdf => $pdf, font => $pdf->corefont( 'Helvetica', -encoding => 'latin1' ), size => 4, # 这里设置默认字体大小,单位为pt }), b => PDF::TextBlock::Font->new({ pdf => $pdf, font => $pdf->corefont( 'Helvetica-Bold', -encoding => 'latin1' ), size => 6, # 这里可单独设置粗体的字体大小 }), }, });
如果需要在同一个文本块里使用不同大小的文本,也可以在调用text方法传入内容的时候,通过<font size=xx>标签临时指定:
$tb->text("<font size=12>大号标题</font> 普通大小文本 <b><font size=5>小号粗体文本</font></b>"); $tb->apply;
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

