Module: HexaPDF::FontLoader::FromFile
- Defined in:
- lib/hexapdf/font_loader/from_file.rb
Overview
This module interprets the font name either as file name and tries to load it, or as TrueType font object to be wrapped directly.
Class Method Summary collapse
-
.call(document, name, subset: true) ⇒ Object
:call-seq: FromFile.call(document, file_name, subset: true, **) -> wrapped_font FromFile.call(document, font_object, subset: true, **) -> wrapped_font.
Class Method Details
.call(document, name, subset: true) ⇒ Object
:call-seq:
FromFile.call(document, file_name, subset: true, **) -> wrapped_font
FromFile.call(document, font_object, subset: true, **) -> wrapped_font
Returns an appropriate font wrapper for the given file name or TrueType font object.
If a file name is given, the file object representing the font file is not closed and if needed must be closed by the caller once the font is not needed anymore.
The first form using a file name is easier to use in one-off cases. However, if multiple documents always refer to the same font, the second form is better to avoid re-parsing the font file.
document
-
The PDF document to associate the font wrapper with.
file_name
/font_object
-
The file name or a HexaPDF::Font::TrueType::Font object.
subset
-
Specifies whether the font should be subset if possible.
67 68 69 70 71 72 73 |
# File 'lib/hexapdf/font_loader/from_file.rb', line 67 def self.call(document, name, subset: true, **) is_font = name.kind_of?(HexaPDF::Font::TrueType::Font) return nil unless is_font || File.file?(name) font = is_font ? name : HexaPDF::Font::TrueType::Font.new(File.open(name, 'rb')) HexaPDF::Font::TrueTypeWrapper.new(document, font, subset: subset) end |