Module: Fontisan::SvgToGlyf

Defined in:
lib/fontisan/svg_to_glyf.rb,
lib/fontisan/svg_to_glyf/path.rb,
lib/fontisan/svg_to_glyf/document.rb,
lib/fontisan/svg_to_glyf/geometry.rb,
lib/fontisan/svg_to_glyf/assembler.rb,
lib/fontisan/svg_to_glyf/path/state.rb,
lib/fontisan/svg_to_glyf/path/parser.rb,
lib/fontisan/svg_to_glyf/path/command.rb,
lib/fontisan/svg_to_glyf/geometry/normalizer.rb,
lib/fontisan/svg_to_glyf/path/contour_builder.rb,
lib/fontisan/svg_to_glyf/geometry/affine_transform.rb,
lib/fontisan/svg_to_glyf/geometry/transform_parser.rb

Defined Under Namespace

Modules: Geometry, Path Classes: Assembler, Document

Constant Summary collapse

DEFAULT_UPM =
1000

Class Method Summary collapse

Class Method Details

.convert(path_data, upm: DEFAULT_UPM, codepoint: nil, name: nil, viewbox: nil, transform: nil) ⇒ Fontisan::Ufo::Glyph

Convert an SVG path d string into a Ufo::Glyph.

Parameters:

  • path_data (String)

    SVG path commands (e.g., "M 0 0 L 100 100 Z")

  • upm (Integer) (defaults to: DEFAULT_UPM)

    target font units-per-em

  • codepoint (Integer, nil) (defaults to: nil)

    Unicode codepoint to assign

  • name (String, nil) (defaults to: nil)

    glyph name (defaults to uniFontisan::SvgToGlyf.codepointcodepoint.hex)

  • viewbox (Hash{Symbol=>Float}, nil) (defaults to: nil)

    SVG viewbox with :width, :height

  • transform (Fontisan::SvgToGlyf::Geometry::AffineTransform, nil) (defaults to: nil)

    accumulated group transform

Returns:



32
33
34
35
36
37
38
# File 'lib/fontisan/svg_to_glyf.rb', line 32

def self.convert(path_data, upm: DEFAULT_UPM, codepoint: nil, name: nil,
                 viewbox: nil, transform: nil)
  Assembler.new(upm: upm).build_from_path_data(
    path_data, codepoint: codepoint, name: name,
               viewbox: viewbox, transform: transform
  )
end

.from_directory(dir, upm: DEFAULT_UPM) ⇒ Fontisan::Ufo::Font

Convert a directory of SVG files into a Ufo::Font, one glyph per file.

Filenames must encode a codepoint: U+XXXX.svg or hexcode.svg.

Parameters:

  • dir (String)

    directory containing .svg files

  • upm (Integer) (defaults to: DEFAULT_UPM)

    target font units-per-em

Returns:



58
59
60
# File 'lib/fontisan/svg_to_glyf.rb', line 58

def self.from_directory(dir, upm: DEFAULT_UPM)
  Assembler.new(upm: upm).build_from_directory(dir)
end

.from_svg_file(file_path, upm: DEFAULT_UPM, codepoint: nil) ⇒ Fontisan::Ufo::Glyph

Convert an SVG file into a Ufo::Glyph.

Parameters:

  • file_path (String)

    path to an .svg file

  • upm (Integer) (defaults to: DEFAULT_UPM)

    target font units-per-em

  • codepoint (Integer, nil) (defaults to: nil)

    override the codepoint (otherwise derived from the filename if it matches U+XXXX.svg)

Returns:



47
48
49
# File 'lib/fontisan/svg_to_glyf.rb', line 47

def self.from_svg_file(file_path, upm: DEFAULT_UPM, codepoint: nil)
  Assembler.new(upm: upm).build_from_file(file_path, codepoint: codepoint)
end