You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 19:09:04