1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#' @useDynLib freetypeharfbuzz, .registration = TRUE
NULL
.onLoad <- function(lib, pkg) {
.Call(freetypeharfbuzz_library_load)
}
.onUnLoad <- function(lib, pkg) {
.Call(freetypeharfbuzz_library_unload)
}
#' Font metrics
#'
#' @description
#'
#' * `font_info()` returns the typographical metrics (ascent, descent,
#' linegap) for a font.
#'
#' * `str_info()` returns the metrics (width, height, ascent,
#' descent) for a string. `str_width()` only returns the width.
#'
#' @param font_size Font size in point.
#' @param font_file Path to a ttf or otf file.
#' @param string A string whose metrics will be computed.
#'
#' @export
#' @examples
#' file <- fontquiver::font("Liberation", "serif", "bold")$ttf
#' font_info(font_size = 13, font_file = file)
#'
#' str_width("foobar", font_size = 13)
#' str_info("foobar", font_size = 13)
#' str_info("foobar", font_size = 13, font_file = file)
font_info <- function(font_size = 12, font_file = NULL) {
if (is.null(font_file)) {
font_file <- fontquiver::font("Liberation", "sans", "regular")$ttf
}
.Call(freetypeharfbuzz_font_info, font_size, font_file)
}
#' @rdname font_info
#' @export
str_info <- function(string, font_size = 12, font_file = NULL) {
if (is.null(font_file)) {
font_file <- fontquiver::font("Liberation", "sans", "regular")$ttf
}
.Call(freetypeharfbuzz_string_info, string, font_size, font_file)
}
#' @rdname font_info
#' @export
str_width <- function(string, font_size = 12, font_file = NULL) {
if (is.null(font_file)) {
font_file <- fontquiver::font("Liberation", "sans", "regular")$ttf
}
.Call(freetypeharfbuzz_string_width, string, font_size, font_file)
}
|