Fontsize difference

Discussion in 'ASP .Net' started by tshad, Jun 16, 2006.

  1. tshad

    tshad Guest

    I am running a program to put a captcha image on my string and am trying to
    make sure all the characters fit.

    The problem is the size seems to be wrong.

    What I am doing is starting from the rectangles' height + 1 (not sure why I
    would use that as a starting point) then I loop through subtracting the
    value by 1 until the size I get back from MeasureString is less than the
    rectangle width.

    I seem to be ending up with a string way to small.

    The rectangle size is 200w * 50h.

    When I use 50, I start losing characters on my display ( I am always using 7
    and sometimes I will end up with 5 or 4 - not sure which routine is dropping
    them - I assume it is my GraphicsPath.AddString that is doing it).

    If I use 45, it always seems to work fine.

    But if I run the loop and let the program figure it out it gets the
    following:

    After rect.width = 200 rect.height = 50
    Inside do loop fontSize = 50 size.Width = 327.3979 rect.Width = 200
    Inside do loop fontSize = 49 size.Width = 320.85 rect.Width = 200
    Inside do loop fontSize = 48 size.Width = 314.3021 rect.Width = 200
    Inside do loop fontSize = 47 size.Width = 307.7541 rect.Width = 200
    Inside do loop fontSize = 46 size.Width = 301.2061 rect.Width = 200
    Inside do loop fontSize = 45 size.Width = 294.6582 rect.Width = 200
    Inside do loop fontSize = 44 size.Width = 288.1102 rect.Width = 200
    Inside do loop fontSize = 43 size.Width = 281.5622 rect.Width = 200
    Inside do loop fontSize = 42 size.Width = 275.0143 rect.Width = 200
    Inside do loop fontSize = 41 size.Width = 268.4663 rect.Width = 200
    Inside do loop fontSize = 40 size.Width = 261.9184 rect.Width = 200
    Inside do loop fontSize = 39 size.Width = 255.3704 rect.Width = 200
    Inside do loop fontSize = 38 size.Width = 248.8225 rect.Width = 200
    Inside do loop fontSize = 37 size.Width = 242.2745 rect.Width = 200
    Inside do loop fontSize = 36 size.Width = 235.7266 rect.Width = 200
    Inside do loop fontSize = 35 size.Width = 229.1786 rect.Width = 200
    Inside do loop fontSize = 34 size.Width = 222.6306 rect.Width = 200
    Inside do loop fontSize = 33 size.Width = 216.0827 rect.Width = 200
    Inside do loop fontSize = 32 size.Width = 209.5347 rect.Width = 200
    Inside do loop fontSize = 31 size.Width = 202.9867 rect.Width = 200
    Inside do loop fontSize = 30 size.Width = 196.4388 rect.Width = 200

    30 is way less that the 45 that works.

    Am I doing something wrong here? I am using the "Century Schoolbook" font.

    Here is the code to test the size - the test is done just before the "while"
    statement.

    ****************************************
    float fontSize = rect.Height + 1;
    Font font;
    // Adjust the font size until the text fits within the image.
    do
    {
    fontSize--;
    font = new Font(this.familyName, fontSize, FontStyle.Bold);
    size = g.MeasureString(this.text, font);
    } while (size.Width > rect.Width);
    ***********************************************

    Thanks,

    Tom
     
    tshad, Jun 16, 2006
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?ZnJlZA==?=

    fontsize/stylesheet problem

    =?Utf-8?B?ZnJlZA==?=, Jun 9, 2004, in forum: ASP .Net
    Replies:
    0
    Views:
    445
    =?Utf-8?B?ZnJlZA==?=
    Jun 9, 2004
  2. Veeresh

    HTML Literal Control & FontSize

    Veeresh, Jun 28, 2004, in forum: ASP .Net
    Replies:
    2
    Views:
    4,356
    Veeresh
    Jun 28, 2004
  3. Tushar
    Replies:
    1
    Views:
    312
    Thomas Weidenfeller
    Feb 14, 2005
  4. Tom Parson
    Replies:
    12
    Views:
    56,843
    Benoit Peltier
    Jan 11, 2006
  5. Samuël van Laere

    Fontsize questions

    Samuël van Laere, Nov 20, 2003, in forum: HTML
    Replies:
    9
    Views:
    426
    Samuël van Laere
    Nov 21, 2003
Loading...

Share This Page