http://qs321.pair.com?node_id=950987


in reply to Re^3: font measurement
in thread font measurement

Got it figured out. Here is the code:
#!/user/bin/perl use warnings; use strict; use Tk; use Tk::Font; my $mw = MainWindow->new(); # window instance $mw->fontCreate('josh', -family=>'Arial', -size=>20); # give the fon +t instance an arbitrary name 'josh'; specify font family and size her +e my $sentence = "This is my sample sentence to measure."; my $length = $mw->fontMeasure('josh', $sentence); # use the arbitr +ary font name here with the text to measure print "Your sample sentence is $length pixels long in the specified fo +nt and size.\n";

Basically, there are several keys. First, you assign the window instance to a variable. Then, you use that variable to create the instance of the font. You give the font an arbitrary name. The way you pick your font face is by giving a value to the 'family' option. This is better than specifying a ttf file or likewise (which you can't do anyhow) b/c you can also specify the font weight, etc., within that family (Arial bold, italic, etc.). You set the size and the font is ready to go. So to use the fontMeasure procedure, you simply refer to the font instance as you named it and give it a string. It returns the measurement in pixels.

Thanks for all the help.

Replies are listed 'Best First'.
Re^5: font measurement
by BrowserUk (Patriarch) on Jan 31, 2012 at 17:05 UTC
    Thanks for all the help.

    YW. Thanks for coming back and filling in some of my blanks.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?