Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
10.1
10.2
10.3
10.4
10.5
11.0
11.1
11.2
11.3
11.4
Statistic
FMM
Blog
The function measures the height of a formatted text block.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
DynaPDF | 3.1 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameter | Description | Example |
---|---|---|
The PDF reference returned from DynaPDF.New. | ||
Width | Width of output rectangle | $width |
Align | The text alignment. Can be left, center, right or justify. | "left" |
Text | The text to write. | "Hello World" |
Returns height or error message.
See also GetFTextHeightEx function in DynaPDF manual.
Place text centered on page:
# top down coordinates
Set Variable [ $r ; Value: MBS("DynaPDF.SetPageCoords"; $pdf; "TopDown") ]
# get the styled text to place
Set Variable [ $FileMakerText ; Value: Create Text::Text ]
# convert to Formatted Text for DynaPDF
Set Variable [ $FText ; Value: MBS( "DynaPDF.ConvertStyledText"; $pdf; $FileMakerText ) ]
# measure
Set Variable [ $Width ; Value: 400 ]
Set Variable [ $Height ; Value: MBS( "DynaPDF.GetFTextHeightEx"; $PDF; $Width; "left"; $FText ) ]
# lookup page size
Set Variable [ $PageWidth ; Value: MBS( "DynaPDF.GetPageWidth"; $PDF ) ]
Set Variable [ $PageHeight ; Value: MBS( "DynaPDF.GetPageHeight"; $PDF ) ]
# now center text on page
Set Variable [ $r ; Value: MBS("DynaPDF.SetTextRect"; $pdf; ($PageWidth - $Width) / 2; ($PageHeight - $Height) / 2; $Width; $Height) ]
Set Variable [ $r ; Value: MBS("DynaPDF.WriteFText"; $pdf; "left"; $FText) ]
Measure text height and draw it aligned to bottom of page:
# get some styled text from FileMaker
Set Variable [ $StyledText ; Value: MyTable::MyText ]
If [ Length ( $StyledText ) > 0 ]
# Convert to the styles DynaPDF needs
Set Variable [ $text ; Value: MBS( "DynaPDF.ConvertStyledText"; $PDF; $StyledText; $LeadingFactor ) ]
# set a default font and color
Set Variable [ $r ; Value: MBS("DynaPDF.SetFont"; $pdf; "Helvetica"; 0; 12) ]
Set Variable [ $r ; Value: MBS("DynaPDF.SetFillColor"; $pdf; 0; 0; 0) ]
# calculate height for this block
Set Variable [ $height ; Value: MBS( "DynaPDF.GetFTextHeightEx"; $PDF; 240; "left"; $Text ) ]
# Set the area where the text is output based on height from bottom of page
Set Variable [ $r ; Value: MBS("DynaPDF.SetTextRect"; $pdf; 620; 28 + $height + $PositionOffset; 240; $height + 5) ]
# and draw it
Set Variable [ $r ; Value: MBS("DynaPDF.WriteFText"; $pdf; "left"; $text) ]
End If
Created 18th August 2014, last changed 27th May 2021
DynaPDF.GetFTextHeight - DynaPDF.GetField
Feedback: Report problem or ask question.