TCPDF写入调用后的x位置

时间:2015-07-28 10:17:01

标签: tcpdf

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

但是,有时候我想改变中间的文字特征(颜色,重量,插入图像,等等)。所以我将文本写入Write,并假设它完全适合(Write不会返回任何剩余的字符串),我可以设置新的特性,然后将下一位写入Write。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

您使用的是什么版本的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有字符串"这是一个测试。"所有在一条线上,正常,粗体,规则,正如您期望阅读代码。

我很想知道运行它时该脚本的结果是什么。