php - 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,0,1,'C');
至
$this->MultiCell(0,5,$e,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, IN AND FOR _______________________ COUNTY FLORIDA,');
$pdf->Ln();
$pdf->SetY($pdf->GetY() + 10);
$pdf->Cell(0,5,'The next line of your PDF goes here');
$pdf->Output();
推荐阅读
- ios - Swift:如何从 CNContactPickerViewController 搜索选项中隐藏“SIRI Found IN APPS”选项?
- javascript - JavaScript / SAPUI5 如何将文件附加到指定位置并将其导出到指定位置?
- android - 如何实现一个自定义的 ImageView,在其中我可以在视图中绘制 Bitmap 后回收它?
- android - 过渡动画无法从回收视图到详细信息屏幕
- java - android在设备上保存非常小的数据的最佳方法
- nlp - 词性(POS)与句法依赖解析
- highcharts - Highcharts 自行删除系列
- c++ - 我不明白 DoNotOptimizeAway 的定义
- jquery - Jquery Datatable - 显示结果但不为复选框分配值
- javascript - Javascript常规Eypression不起作用