How do I load a font?

Loading a font

There are so many great and permissively licensed fonts available that at some point you will want to use a font in your solution that is not installed by default on your target systems. LiveCode includes a command to load and unload a font from a file.

The syntax for font loading and unloading in LiveCode is as follows:

start using font file fontFile [globally]
stop using font file fontFile

Fonts are loaded by FileMaker when it starts up so we must call the start using font file command within a custom component's `FileMakerLoad` handler. We are going to implement this custom component as a script only stack with a folder of fonts next to it that are loaded by the component.

Creating a script only stack

Open the LiveCode IDE and choose `File > New Stack > Script only stack` from the menubar. Name the stack `FontLoader` and click `OK`

Because script only stacks have no user interface by default the new stack will open directly into the script editor.

Script

Copy the script below to the `FontLoader` stack script:

on FileMakerLoad
   local tPath
   put __TheFontFolder() into tPath
   
   local tFiles
   put __TheFontFilesOfFolder(tPath) into tFiles
   
   repeat for each line tFile in tFiles
      start using font file (tPath & slash & tFile)
   end repeat
end FileMakerLoad

on FileMakerUnload
   local tPath
   put __TheFontFolder() into tPath
   
   local tFiles
   put __TheFontFilesOfFolder(tPath) into tFiles
   
   repeat for each line tFile in tFiles
      stop using font file (tPath & slash & tFile)
   end repeat
end FileMakerUnload

private function __TheFontFolder
   local tPath
   put the effective filename of me into tPath
   set the itemDelimiter to slash
   put "fonts" into the last item of tPath
   return tPath
end __TheFontFolder

private function __TheFontFilesOfFolder pPath
   local tFiles
   put files(pPath) into tFiles
   filter tFiles with "*.ttf"
   return tFiles
end __TheFontFilesOfFolder

on FileMakerAction pAction
   
end FileMakerAction

Now click `Apply` and choose `File > Save` from the menubar and save the file in a location you can remember.

Back to FileMaker

Open the LiveCode for FM plugin solution in FileMaker and click on the `Custom Components` button.

Click on the `+` icon and choose the stack file you saved in LiveCode. Name the custom component `FontLoader` and click `OK`

Adding a fonts folder

Back in LiveCode choose `LiveCode > Preferences` from the menubar and check the file path to your `User Extensions` folder.

Navigate to your user extensions folder in Finder and inside the `FileMaker Components/fontloader` create a folder named `fonts` and place one or more font files you would like loaded when in FileMaker.

Testing

Close FileMaker and re-open it and the fonts that were placed in the fonts folder will be available to use in your solutions in FileMaker.

0 Comments

Add your comment

E-Mail me when someone replies to this comment