Home General

Textwidth

edited July 2001 in General
Hi we put some text in a stringgrid. This stringgrid is used for the output
of the reportbuilder.

because of the width of page in the reportbuilder the text may not be wider
than this page.

Now we check the textwidht in the stringgrid with Canvas.Textwidth. But if
a generate a report with this text it is still wider then the width in the
stringgrid. The font and the size of the font are in the grid as wel in the
reportbuilder the same.

Why ?

Comments

  • edited July 2001
    ReportBuilder uses the printer canvas to draw text on.

    We have two choices when we create a preview - compose for the screen, or
    compose for the printer. Most programs such as MS Word compose to the screen
    when they create a preview. This makes for attractive previews but they tend
    to
    be inaccurate. And it means that they then compose again for the printer
    when you print the document. Most of the time things will print effectively
    similar to the preview, but we have seen many times when the printed output
    was different - a word wrapped to the next line, or some such problem. If
    you use a program meant for accurate page layout, such as PageMaker, you
    will notice that the Page Setup dialog asks you for which printer you wish
    to compose. When PageMaker displays a page, it may not look exactly how
    you think it should, but you do get a preview where the element placement
    is guaranteed to match the printed output's element placement.
    We have chosen to follow this second model.

    Note that when we say element placement, we are referring to X and Y
    placement and not height and width. While the X and Y placement of
    our previews will be accurate, the height and width of text elements
    may vary based on zoom percentage. This is a normal artifact of
    composing for the printer and not for the screen.

    Your preview can not match your printed output. It will
    differ in one of two ways:

    1- It can look good on the screen, but items on the page may not
    display in the same location they will when printed.
    or
    2- It can be less attractive, but items will display on the preview
    exactly where they will when printed.

    We give you the second because it is more accurate and more reliable.
    Not to mention more in keeping with professional page layout products.


    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited July 2001
    Hi Jim,

    but is there a way to check if the width that is typed into a control in a
    delphi form fits in a report.

    greetings Frank

  • edited July 2001
    So you get input from an edit box on a form. You can get this text and
    access the Report.Printer.Canvas in order to call TextWidth. If the report
    has been instantiated and has the desired printer setup, then I would think
    that if you had access to the printer canvas that the report is generating
    on, and used the TextWidth function, you should get the actual width that
    that text would use when printed.


    Cheers,

    Jim Bennett
    Digital Metaphors


This discussion has been closed.