Learn R Programming

⚠️There's a newer version (0.4.4) of this package.Take me there.

gdtools

The package gdtools provides functionalities to get font metrics and to generate base64 encoded string from raster matrix. It is used by package ggiraph and rvg to allow font metric calculation but can also be used to compute the exact size a text would have with specific font options (size, bold, italic).

Installation

You can install the released version of gdtools from CRAN with:

install.packages("gdtools")

And the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("davidgohel/gdtools")

Example

library(gdtools)
str_extents(c("a string", "a longer string"), 
  fontsize = 24, bold = TRUE, italic = TRUE)
#>           [,1]     [,2]
#> [1,]  86.68359 22.60547
#> [2,] 166.68750 22.60547

For mac os users

This package needs X11 to be available on mac os machines. This will make cairo, font-config and other system dependancies available. This is documented here: R for Mac OS X ; X11 can be downloaded from XQuartz website.

  • Unable to load shared object

    Sometimes, when your OS got updated, some font settings and several other settings can be changed. An error similar to the one below can be read :

    Error in dyn.load(file, DLLpath = DLLpath, ...) : 
     unable to load shared object '/Library/Frameworks/R.framework/Versions/.../gdtools/libs/gdtools.so':
    dlopen(/Library/Frameworks/R.framework/Versions/.../gdtools/libs/gdtools.so, 6): Library not loaded: /opt/X11/lib/libcairo.2.dylib
    Referenced from: /Library/Frameworks/R.framework/Versions/.../gdtools/libs/gdtools.so 
    Reason: image not found

    Or

    Error: package or namespace load failed for ‘xxxx’ in dyn.load(file, DLLpath = DLLpath, ...):
     unable to load shared object '/Library/Frameworks/R.framework/Versions/.../systemfonts/libs/systemfonts.so':
    dlopen(/Library/Frameworks/R.framework/Versions/.../systemfonts/libs/systemfonts.so, 6): Library not loaded: /opt/X11/lib/libfreetype.6.dylib
    Referenced from: /Library/Frameworks/R.framework/Versions/.../systemfonts/libs/systemfonts.so
    Reason: image not found

    Solution:

    1. Close all R sessions
    2. Re-install XQuartz when upgrading your macOS to a new major version.
    3. Re-install package gdtools.

    If you need to build the package from sources, make sure XCode is installed and you have accepted the license agreement.

Copy Link

Version

Install

install.packages('gdtools')

Monthly Downloads

157,633

Version

0.2.4

License

GPL-3 | file LICENSE

Maintainer

David Gohel

Last Published

February 14th, 2022

Functions in gdtools (0.2.4)

str_metrics

Get font metrics for a string.
str_extents

Compute string extents.
match_family

Find best family match with systemfonts
m_str_extents

Compute string extents for a vector of string.
glyphs_match

Validate glyph entries
raster_str

Draw/preview a raster into a string
sys_fonts

List system fonts.
version_freetype

Version numbers of C libraries
raster_write

Draw/preview a raster to a png file
fontconfig_reinit

reload Fontconfig configuration
set_dummy_conf

Set and unset a minimalistic Fontconfig configuration
font_family_exists

Check if font family exists.