The function PDF_fit_textline has an "optlist" argument which you use to pass options. In other words, PDF_fit_textline contains many functions instead of one. A classical code smell.
The fact that the optlist argument is a string uglyfies this function by a factor of thousand.
Conclusion: when you make functions like PDF_show_boxed deprecated, replace it with a better function instead of doing the opposite.
PDF_fit_textline
(PECL pdflib >= 2.0.0)
PDF_fit_textline — Place un simple ligne de texte
Description
bool PDF_fit_textline
( resource
$pdfdoc
, string $text
, float $x
, float $y
, string $optlist
)
Place une simple ligne de texte à une position précise.
Cette fonction retourne TRUE en cas de
succès ou FALSE si une erreur survient.
Anders Lindn
19-Jan-2011 12:38
scott at dont want spam dot com
12-Jul-2009 03:49
One point about using the PDF_show_boxed function.
It does not support Unicode. So if you need that support you will need to use this function or the text flow functions.
eslindsey at gmail dot com
24-Mar-2009 06:17
For right now, if you are using PDFlib Lite, you can still use the legacy (depreciated) PDF_show_boxed or $p->show_boxed functions to create a text area. This seems to be a good (if not as full-featured) alternative to the textflow functions, and definitely a whole lot easier than trying to write your own text wrapping/hyphenation solution.
Chris at postal-code dot com
27-Nov-2006 01:47
A patch to the code below to handle an array bounds error that arises:
<?php
$nextText = "";
if ( ( count( $tmpTxt ) - 1 ) >= ( $i + 1 ) )
{ $nextText = $tmpTxt[ $i+1 ]; }
if ( ( strlen( $str ) + strlen( $nextText ) ) > $cols )
?>
rcable at workforceconnections dot biz
11-Jul-2006 05:49
Here is a function I created in order to allow me to do textblocks on pdflib lite. Hope this helps someone else, cause all the stuff I've found on php.net has helped me.
$p is your pdf resource
$text is the string to put in the box
$cols is the number col characters before a carriage return
$xcrd,$ycrd is lower left of first line.
This will accept \n as a newline/carriage return and use it to skip to next line. It is not setup to hyphenate words, but someday I'll build one, or buy the full pdf package. ;)
function text_block($p,$text,$cols,$xcrd,$ycrd)
{
$font_size=12; //font size, used to space lines on y axis
$tmplines = explode("\n",$text);
for($j=0;$j<count($tmplines);$j++)
{
$tmptxt = explode(" ",$tmplines[$j]);
$str="";
for($i=0;$i<count($tmptxt);$i++)
{
if($str=="") $str=sprintf("%s",$tmptxt[$i]);
else $str=sprintf("%s %s",$str,$tmptxt[$i]);
if((strlen($str) + strlen($tmptxt[$i+1])) > $cols)
{
pdf_fit_textline($p,$str,$xcrd,$ycrd,"");
$str="";
$ycrd-=$font_size;
}
}
pdf_fit_textline($p,$str,$xcrd,$ycrd,"");
$ycrd-=$font_size;
}
return $ycrd;
}
