PDF_stringwidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_stringwidthReturn width of text

˵Ã÷

float PDF_stringwidth ( resource $p , string $text , int $font , float $fontsize )

Returns the width of text in an arbitrary font.

User Contributed Notes

rross at mNoOoSnPsAoMfvega dot com 10-Nov-2005 01:27
One thing I came across, and hope is useful to someone, is the following.
If you're looking to use the pdf_stringwidth() function, and expecting it to give you the proper results when trying to center or position the text, try to avoid using this line in your code:

<?
    pdf_set_parameter($pdf, "textformat", "utf8");
?>

I discovered (after much hair-pulling of what remains of my hair) that this line of code increases the amount of space between characters by roughly 100%.  Removing this line of code made the text on my generated PDF's significantly tighter and more appealing.
smilingrasta FROM gmx dot net 19-Jul-2005 06:42
With upgrading to PHP5, i had to switch to a newer version of pdflib (v6), where some functions slightly differ from the old version(v5).

The new parameters for this function are:
<?php float PDF_stringwidth(PDF *p, const char *text, int font, float size); ?>

pdf_stringwidth() does only take 2 parameters in the old version.
Now 5 parameters are required. As they aren't listed here, i thought i could do that :>

<?php
# first, we have to find the font, we are using
$fontID = pdf_findfont($pdf, 'Courier', 'host', 0);
# then we can call pdf_stringwidth                                                 
$width = pdf_stringwidth($pdf,$string, $fontID, $fontsize));
?>

Maybe that helps someone out.
farzal at hotmail dot com 27-Jul-2001 02:51
with font COURIER and fontsize of 12, you can print 10 CPI (Characters per inch) or 1 character every 7.2 points.

This means, on an A4 page of size (595,842), with a printable area of (451,662) after leaving 1" blank on each side, one can print 451/7.2 ~= 62 characters.

If one is building tables after quering databases, this is a way to figure out if you can print all your columns in a page, or if you need to use landscape, or if you need to reduce the font size.