TCPDF Write调用后的x位置



我使用TCPDF->写$firstline=TRUE,这样我就可以从较长的段落发出一行,然后控制下一行的位置(例如流向下一页或同一页上的另一个框)。这工作得很好,并且避免了必须显式测量字符串长度和在哪里包装- TCPDF为我做了这些。

然而,有时我想改变文本特征中线(颜色,重量,插入图像,等等)。所以我给文本写,假设它都适合(写不返回任何剩余的字符串),我可以设置新的特征,然后给下一个位写。

问题是x位置似乎在Write调用后重置到左边距,无论它是否有任何文本剩余。GetX没有给我想要的位置。看起来这个值在TCPDF->$endlinex的代码中是,但是我必须取消保护该变量才能使用它,这不是一个好的解决方案。

是否有一种正确的方法来获得在写调用后写入字符串末尾的x位置?

(我试过$firstblock,但这似乎没有任何区别,无论它是TRUE还是FALSE)

(我知道我可以将其标记为HTML,但我的源代码不是HTML开始的,WriteHTML调用不提供我需要的对文本流的控制)

您使用的是哪个版本的TCPDF ?

我在编写本文时使用最新版本(6.2.9)运行以下代码,并且在调用Write()后X位置没有重置。

$pdf = new TCPDF();
$pdf->SetPrintHeader( false );
$pdf->SetPrintFooter( false );
$pdf->AddPage();
$pdf->SetMargins( 10, 10, 10, 10 );
echo $pdf->GetX(), "n";
$pdf->SetFont( 'helvetica' );
$pdf->Write( 5, 'This is a test.' );
echo $pdf->GetX(), "n";
$pdf->SetFont( 'helvetica', 'B' );
$pdf->Write( 5, 'This is a test.' );
echo $pdf->GetX(), "n";
$pdf->SetFont( 'helvetica' );
$pdf->Write( 5, 'This is a test.' );
echo $pdf->GetX(), "n";
$pdf->output( 'test.pdf', 'F' );

当我运行这个脚本时,输出如下所示:

10.00125
34.939816666667
61.762216666667
86.700783333333

…生成的PDF在一行中包含字符串"This is a test.",格式为楷体、粗体、楷体,正如您在阅读代码时所期望的那样。

我很想知道这个脚本的结果是什么,当你运行它

最新更新