XPRINT TEXT SIZE statement  

Purpose

Calculate the size of text to be printed on a host printer.

Syntax

XPRINT TEXT SIZE txt$ To nWidth!, nHeight!

Function Form:

WidthVar!  = XPRINT(TEXT.SIZE.X, txt$)

HeightVar! = XPRINT(TEXT.SIZE.Y, txt$)

Remarks

This statement calculates the total size of the printed text, based upon the current font for the host printer.  The sizes returned are specified in Page Units.

This allows you to easily calculate the appropriate print position, particularly when using a proportional font.  If this statement is executed without a host printer attached, error 57 is generated.

See also

XPRINT CELL SIZE, XPRINT CHR SIZE, XPRINT SET FONT

Example

FUNCTION PBMAIN

  ' The following example draws the text both horizontally

  ' and vertically centered on the host printer page

 

  LOCAL x, y, w, h, w2, h2 AS LONG

  LOCAL sText AS STRING

  sText = "PowerBASIC"

 

  XPRINT ATTACH "Lexmark C750"

  XPRINT COLOR %BLUE, -2  ' blue text, clear background

  XPRINT FONT "Times New Roman", 18, 3  ' 18p, bold, italic

 

  XPRINT GET CLIENT TO w, h  ' get client size

  XPRINT TEXT SIZE sText TO w2, h2      ' get text size

  x = (w-w2) / 2                        ' centered x-pos

  y = (h-h2) / 2                        ' centered y-pos

 

  XPRINT SET POS (x, y)                 ' set position

  XPRINT sText                          ' draw the text

  XPRINT CLOSE

END FUNCTION