©
Ce document utilise Manuel du site Web PHP chinois Libérer
(PHP 4, PECL pdflib >= 1.0.0)
PDF_stringwidth — Return width of text
$p
, string $text
, int $font
, float $fontsize
)
Returns the width of text
in an arbitrary font.
[#1] rross at mNoOoSnPsAoMfvega dot com [2005-11-10 04:27:36]
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:
<?php
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.
[#2] smilingrasta FROM gmx dot net [2005-07-19 09:42:53]
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.
[#3] farzal at hotmail dot com [2001-07-26 17:51:23]
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.