PDF 函数
在线手册:中文 英文
PHP手册

PDF_fit_textline

(PECL pdflib >= 2.0.0)

PDF_fit_textlinePlace single line of text

说明

bool PDF_fit_textline ( resource $pdfdoc , string $text , float $x , float $y , string $optlist )

Places a single line of text on the page, subject to various options. 成功时返回 TRUE, 或者在失败时返回 FALSE.


PDF 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Place single line of text

用户评论:

Anders Lindn (19-Jan-2011 08:38)

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.

scott at dont want spam dot com (12-Jul-2009 11: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 (25-Mar-2009 02: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 09: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 (12-Jul-2006 01: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;
}