parse-bmfont-xml

    1.1.4 • Public • Published

    parse-bmfont-xml

    stable

    Parses XML BMFont files.

    Takes a string or Buffer:

    var fs = require('fs')
    var parse = require('parse-bmfont-xml')
     
    fs.readFileSync(__dirname+'/Arial.fnt', function(err, data) {
      var result = parse(data)
      console.log(result.info.face)   // "Arial"
      console.log(result.pages)       // [ 'sheet0.png' ]
      console.log(result.chars)       // [ ... char data ... ]
      console.log(result.kernings)    // [ ... kernings data ... ]
    })

    Also works in the browser, for example using XHR:

    var parse = require('parse-bmfont-xml')
    var xhr = require('xhr')
     
    xhr({ uri: 'fonts/NexaLight32.xml' }, function(err, res, body) {
      if (err)
        throw err
      var result = parse(body)
      console.log(result.info.face)
    })

    The spec for the returned JSON object is here. The input XML should match the spec with a <font> root element, see test/Nexa Light-32.fnt for an example.

    See Also

    See text-modules for related modules.

    Usage

    NPM

    result = parse(data)

    Parses data, a string or Buffer that represents XML data of an AngelCode BMFont file. The returned result object looks like this:

    {
         pages: [
             "sheet_0.png", 
             "sheet_1.png"
         ],
         chars: [
             { chnl, height, id, page, width, x, y, xoffset, yoffset, xadvance },
             ...
         ],
         info: { ... },
         common: { ... },
         kernings: [
             { first, second, amount }
         ]
    }

    If the data is malformed, an error will be thrown.

    The browser implementation relies on xml-parse-from-string, which may not work in environments without valid DOM APIs (like CocoonJS).

    License

    MIT, see LICENSE.md for details.

    Install

    npm i parse-bmfont-xml

    DownloadsWeekly Downloads

    981,200

    Version

    1.1.4

    License

    MIT

    Unpacked Size

    8.89 kB

    Total Files

    6

    Last publish

    Collaborators

    • mattdesl