How to determine the length (in pixels) of a string being rendered on a web page?


If I know the font size (12) and the font family (calibri), is there a way to determine the length (in pixels) a given string will take after it will be rendered? I am absolutely certain about the font and size. Are there any lookup tables for this purpose to determine the length in PHP code itself? I am writing a PHP script to dynamically generate an SVG image which contains various boxes filled with data pulled out of a DB. The problem is that I need to manually wrap the text around and increase the size of the box if the string is big.


4/14/2012 12:36:43 PM

Accepted Answer

Use the PHP function imagettfbbox to get the size of the bounding box for the given string.

On the other hand you can use also javascript to manipulate SVG images in case you would like to handle it on the client side. That way it wouldn't even matter if the client had the specified font or not...

10/29/2009 6:44:39 AM

You could use PHP GD to render out the string as a image and get the size of the resulting image.

If you use this, it should work:

   list($left,, $right) = imageftbbox( 12, 0, "arial.ttf", "Hello World");

   $width = $right - $left;

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow