Module: HexaPDF::FontLoader::Standard14
- Defined in:
- lib/hexapdf/font_loader/standard14.rb
Overview
This module is used for providing the standard 14 PDF fonts.
Constant Summary collapse
- MAPPING =
Mapping of font family name and variant to font name.
{ 'Times' => { none: 'Times-Roman', bold: 'Times-Bold', italic: 'Times-Italic', bold_italic: 'Times-BoldItalic', }, 'Helvetica' => { none: 'Helvetica', bold: 'Helvetica-Bold', italic: 'Helvetica-Oblique', bold_italic: 'Helvetica-BoldOblique', }, 'Courier' => { none: 'Courier', bold: 'Courier-Bold', italic: 'Courier-Oblique', bold_italic: 'Courier-BoldOblique', }, 'Symbol' => { none: 'Symbol', }, 'ZapfDingbats' => { none: 'ZapfDingbats', }, }
Class Method Summary collapse
-
.call(document, name, variant: :none, custom_encoding: false) ⇒ Object
Creates a new font object backed by the AFM font metrics read from the file or IO stream.
Class Method Details
.call(document, name, variant: :none, custom_encoding: false) ⇒ Object
Creates a new font object backed by the AFM font metrics read from the file or IO stream.
document-
The PDF document to associate the font object with.
name-
The name of the built-in font. One of Times, Helvetica, Courier, Symbol or ZapfDingbats.
variant-
The font variant. Can be :none, :bold, :italic, :bold_italic for Times, Helvetica and Courier; and must be :none for Symbol and ZapfDingbats.
custom_encoding-
For Times, Helvetica and Courier the standard encoding WinAnsiEncoding is used. If this option is not wanted because access to other glyphs is needed, set this to
true
86 87 88 89 90 91 92 93 |
# File 'lib/hexapdf/font_loader/standard14.rb', line 86 def self.call(document, name, variant: :none, custom_encoding: false, **) name = MAPPING[name] && MAPPING[name][variant] return nil if name.nil? file = File.join(HexaPDF.data_dir, 'afm', "#{name}.afm") font = HexaPDF::Font::Type1::Font.from_afm(file) HexaPDF::Font::Type1Wrapper.new(document, font, custom_encoding: custom_encoding) end |