如何在FPDF/PHP中实现每60个字符自动换行?
实现FPDF Text方法的自动换行(每60字符)
Text()方法本身不支持自动换行,你需要手动分割字符串后逐行输出,以下是两种实用实现方式:
方式一:固定每60字符强制换行
直接将字符串按60字符分割,不考虑单词是否被截断:
$text = utf8_decode($objet); // 分割为每60字符一行的数组 $lines = str_split($text, 60); $x = 77; $y = 94; $lineHeight = 5; // 根据字体大小调整行高,比如12号字体可设为6 // 循环输出每行 foreach ($lines as $line) { $pdf->Text($x, $y, $line); $y += $lineHeight; // 输出后下移对应行高距离 }
方式二:优先在单词边界换行(避免截断单词)
如果需要保证单词完整性,用wordwrap()函数分割,它会优先在空格处换行,仅当单单词长度超过60字符时才强制截断:
$text = utf8_decode($objet); // 按60字符分割,保留单词完整性 $lines = explode("\n", wordwrap($text, 60)); $x = 77; $y = 94; $lineHeight = 5; foreach ($lines as $line) { $pdf->Text($x, $y, $line); $y += $lineHeight; }
根据需求选择对应方式即可,记得调整$lineHeight适配你的字体大小,确保行间距合理。
内容的提问来源于stack exchange,提问作者Milkasoprano
相关产品推荐
相关产品推荐

