Text::Layout::FontConfig(3pm) | User Contributed Perl Documentation | Text::Layout::FontConfig(3pm) |
NAME¶
Text::Layout::FontConfig - Pango style font description for Text::Layout
SYNOPSIS¶
Font descriptors are strings that identify the characteristics of the desired font. For example, "Sans Italic 20".
The PDF context deals with physical fonts, e.g. built-in fonts like "Times-Bold" and fonts loaded from font files like "/usr/share/fonts/dejavu/DejaVuSans.ttf".
To map font descriptions to physical fonts, these fonts must be registered. This defines a font family, style, and weight for the font.
Note that Text::Layout::FontConfig is a singleton. Creating objects with new() will always return the same object.
METHODS¶
- new( [ atts... ] )
- For convenience only. Text::Layout::FontConfig is a singleton. Creating
objects with new() will always return the same object.
Attributes:
- corefonts
- If true, a predefined set of font names (the PDF corefonts) is registered.
- register_fonts( $font, $family, $style [ , $weight ] [ , $props ] )
- Registers a font fmaily, style and weight for the given font.
$font can be the name of a built-in font, or the name of a TrueType or OpenType font file.
$family is a font family name such as "normal", "sans", "serif", or "monospace". It is possible to specify multiple family names, e.g., "times, serif".
$style is the slant style, one of "normal", "oblique", or "italic".
$weight is the font weight, like "normal", or "bold".
For convenience, style combinations like "bolditalic" are allowed.
A final hash reference can be passed to specify additional properties for this font. Recognized properties are:
- "shaping" - If set to a true value, this
font will require text shaping. This is required for fonts that deal with
complex glyph rendering and ligature handling like Devanagari.
Text shaping requires module HarfBuzz::Shaper.
- "ascender" - If set overrides the font
ascender. This may be necessary to improve results for some fonts. The
value is expressed in 1/1000th of an em.
"descender" - If set overrides the font descender. This may be necessary to improve results for some fonts. The value is expressed in 1/1000th of an em.
- "underline_thickness", "underline_position" - Overrides the font specified or calculated values for underline thickness and/or position. This may improve results for some fonts.
- "strikeline_thickness",
"strikeline_position" - Overrides the
font specified or calculated values for strikeline thickness and/or
position. This may improve results for some fonts.
Note that strikeline thickness will default to underline thickness, if set.
- "overline_thickness",
"overline_position" - Overrides the font
specified or calculated values for overline thickness and/or position.
This may improve results for some fonts.
Note that overline thickness will default to underline thickness, if set.
- add_fontdirs( @dirs )
- Adds one or more file paths to be searched for font files.
- register_aliases( $family, $aliases, ... )
- Adds aliases for existing font families.
Multiple aliases can be specified, e.g.
$layout->register_aliases( "times", "serif, default" );
or
$layout->register_aliases( "times", "serif", "default" );
- register_corefonts( $noaliases )
- This is a convenience method that registers all built-in corefonts.
Aliases for families "serif", "sans", and "monospace" are added unless $noaliases is specified.
You do not need to call this method if you provide your own font registrations.
- find_font( $family, $style, $weight )
- Returns a font descriptor based on the given family, style and weight.
On Linux, fallback using fontconfig.
- from_string( $description )
- Returns a font descriptor using a Pango-style font description, e.g.
"Sans Italic 14".
On Linux, fallback using fontconfig.
- parse( $description )
- Parses a Pango-style font description and returns a hash ref with keys
"family",
"style",
"weight", and
"size".
Unspecified items are returned as empty strings or, in the case of "size", zero.
- from_filename( $filename )
- Returns a font descriptor from a filename. Tries to infer Pango data from the name.
SEE ALSO¶
Text::Layout, Text::Layout::FontDescriptor.
AUTHOR¶
Johan Vromans, "<JV at CPAN dot org>"
SUPPORT¶
This module is part of <Text::Layout>.
Development takes place on GitHub: <https://github.com/sciurius/perl-Text-Layout>.
You can find documentation for this module with the perldoc command.
perldoc Text::Layout::FontConfig
Please report any bugs or feature requests using the issue tracker for Text::Layout on GitHub.
LICENSE¶
See Text::Layout, Text::Layout::FontDescriptor, HarfBuzz::Shaper.
2024-04-23 | perl v5.38.2 |