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

如何在FPDF同一Cell中设置SQL字符串与固定文本不同字号?

解决FPDF同一行内不同字号文本的问题

FPDF的单个Cell()方法没办法在内部混排不同字号的内容,所以你卡在这里很正常——得拆成多个Cell来拼接,通过切换字体大小并控制换行参数,就能实现“NAME:”字号小、数据库name字段字号大的效果。

核心实现思路

  1. 先用小号字体输出固定文本“NAME:”,设置Cell不换行;
  2. 切换到大号字体,输出从MySQL获取的name字段,完成后按需换行。

代码示例

// 初始化FPDF实例
$pdf = new FPDF();
$pdf->AddPage();

// 从MySQL数据库获取name字段(示例,实际根据你的查询逻辑调整)
$conn = mysqli_connect('localhost', 'username', 'password', 'dbname');
$result = mysqli_query($conn, "SELECT name FROM invoices WHERE id = 1");
$row = mysqli_fetch_assoc($result);
$name = $row['name'];

// 输出小号字体的"NAME:"
$pdf->SetFont('Arial', '', 10); // 字体、样式、字号
$pdf->Cell(30, 10, 'NAME:', 0, 0); // 宽度、高度、文本、边框、换行(0=不换行)

// 切换到大号字体输出name字段
$pdf->SetFont('Arial', '', 14);
$pdf->Cell(0, 10, $name, 0, 1); // 宽度0=占满剩余行宽,1=输出后换行

// 后续PDF内容...
$pdf->Output();

进阶:调整对齐方式

如果需要“NAME:”右对齐,name左对齐,只需要给Cell添加对齐参数(第五个参数):

$pdf->SetFont('Arial', '', 10);
$pdf->Cell(30, 10, 'NAME:', 0, 0, 'R'); // 'R'表示右对齐
$pdf->SetFont('Arial', '', 14);
$pdf->Cell(0, 10, $name, 0, 1, 'L'); // 'L'表示左对齐

为什么之前的方法没用?

  • MultiCell()是用来处理多行文本的,不适合同一行混排字号;
  • SetFont()/SetFontSize()是全局生效的,单个Cell内无法中途切换,必须拆分输出。

内容的提问来源于stack exchange,提问作者Looped Cheese

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:22:36