使用For循环将字符串插入PDF

时间:2016-10-28 10:43:33

标签: php loops fpdi

我是一名初级PHP开发人员。 对于客户,我需要将一些字符串放入pdf中。我正在使用FPDI,我喜欢它。 我有一个现有的模板PDF,我需要将一个字符串的每个字符插入一个小图形框(参见图像)。

example

每个角色必须彼此有2毫米( 8px大约)。

每个字符串可以有不同的长度,所以我想这样做:

$name = 'namenamename';
$stringcount = strlen($name)-1;
$countspace = $stringcount*2;
//121 = coordinate of first box
for ($x=121; $x <= $x+$countspace; $x = $x+2) {
  for ($i=0; $i <= $stringcount; $i++) {        
    $pdf->SetXY($x, 37);
    $pdf->Write(0,$name[$i]);
  }
}

这不起作用。这是错误:

  

最长执行时间为30秒

你能用正确的方法帮助我,并为新手提供良好的解释吗? :)

2 个答案:

答案 0 :(得分:0)

也许不是一个很好的解决方案,但你可以用这行代码修改执行时间

set_time_limit($ seconds);

无论如何试一试,但我认为这可能是循环逻辑中的一个错误。

你能准确说出你需要两个第一个字符的坐标,第一个是121 +东西还是121?

答案 1 :(得分:0)

试试这段代码:



    $name = 'namenamename';
$string_length = strlen($name);

$coordinate = 121; //Give to the variable coordinate the beginning value, in this case 121
for ($i=0; $i < $string_length; $i++){ //make only one loop for the string length so the loop ends when there is no more characters


    $char = substr($name,$i,1); // this is "the tricky part", with substr you can grab each character with its position in the string
    $pdf -> SetXY($coordinate, 37); // here you put the coordinate for the character
    $pdf -> Write(0, $char); // write it
    $coordinate += 2; // and increment it by two, since the character are two spaces away from each other
}

希望这会有所帮助..