Merge pull request #1 from sqshq/master

Add a public interface to load bindata fonts in addition to the built-in ones
This commit is contained in:
Maxi Binder
2019-02-24 17:06:19 +01:00
committed by GitHub
2 changed files with 21 additions and 4 deletions

View File

@@ -122,18 +122,30 @@ func (fm *fontManager) loadBuildInFont() error {
if err != nil {
return err
}
// Get the font
font, err := parseFontContent(string(fontStr))
// Load the font
err = fm.loadBindataFont(fontStr, name)
if err != nil {
return err
}
// Register the font object in the fontLib
fm.fontLib[name] = font
}
return nil
}
// Load a bindata font
func (fm *fontManager) loadBindataFont(fontBinary []byte, fontName string) error {
// Get the font
font, err := parseFontContent(string(fontBinary))
if err != nil {
return err
}
// Register the font object in the fontLib
fm.fontLib[fontName] = font
return nil
}
// Parse a font from a content string
// Used to load fonts from disk and the builtin fonts
func parseFontContent(cont string) (*font, error) {

View File

@@ -39,6 +39,11 @@ func (ar *AsciiRender) LoadFont(fontPath string) error {
return ar.fontMgr.loadFontList(fontPath)
}
// LoadBinDataFont loads provided font binary
func (ar *AsciiRender) LoadBindataFont(fontBinary []byte, fontName string) error {
return ar.fontMgr.loadBindataFont(fontBinary, fontName)
}
// Render renders a string with the default options
// Calls the RenderOpts method with a new RenderOptions object
func (ar *AsciiRender) Render(str string) (string, error) {