如何解决FPDF-无法显示带下划线的变量而不会引起换行
我正在使用http://www.fpdf.org/en/script/script41.php上的FPDF WriteHTML()扩展名。居中效果很好。但是,当我包含下划线标签时,PDF会显示与开始和结束标签一致的换行符。 当我键入
$this->WriteHTML("<p align='center'>IN THE CIRCUIT COURT OF THE <u>$CircuitCourtNumber</u> JUDICIAL CIRCUIT,IN AND FOR _______________________ COUNTY FLORIDA,</p>");
只能在两行上。
我尝试过更改
$this->Cell(0,5,$e,1,'C');
到
$this->MultiCell(0,'C');
效果是一样的。在开始标记和结束标记所在的位置仍显示新行。
我尝试使用http://www.fpdf.org/en/script/script42.php处的WriteHTML()扩展名。它几乎可以正常工作,但是它使文本左对齐,而我正在制作的表单应居中对齐文本。我认为是因为扩展中使用了Write()。
是否有任何方法可以使行居中并允许在句子中间加下划线而无需重新开始行?仅当行到达右边距时才应出现新行。我已经玩了两天了,无济于事。
解决方法
用户编写的脚本(包括您尝试使用的WriteHTML
脚本)不能正确处理字符串中的标签内的标签(如您所知)。正确解析和处理带有正确标记的字符串非常困难。
最简单的解决方案是简单地输出字符串的“片段”,并切换为将字体的下划线属性用于需要的部分,然后返回常规字体样式。
以下显示的内容可以满足您的要求。请注意,我必须使用较小的字体,以使整个字符串适合一行。我将您的巡回法庭号码保留为单独的变量,因为在为所使用的字体打开下划线样式后会分别输出它。
$CircuitCourtNumber = '1234567890';
$theString = 'IN THE CIRCUIT COURT OF THE ' . $CircuitCourtNumber . ' JUDICIAL CIRCUIT,IN AND FOR _______________________ COUNTY FLORIDA,';
require('fpdf.php');
$pdf = new fpdf('P','mm','Letter');
$pdf->AddPage();
$pdf->SetFont('Arial','',9);
$totalWidth = $pdf->GetStringWidth($theString);
$pdf->SetX(($pdf->GetPageWidth() - $totalWidth)/2);
$pdf->Write(5,'IN THE CIRCUIT COURT OF THE ');
$pdf->SetFont('','U');
$pdf->Write(5,$CircuitCourtNumber);
$pdf->SetFont('','');
$pdf->Write(5,' JUDICIAL CIRCUIT,');
$pdf->Ln();
$pdf->SetY($pdf->GetY() + 10);
$pdf->Cell(0,5,'The next line of your PDF goes here');
$pdf->Output();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。