JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1542315
  • Score
    100M100P100Q220168F
  • License MIT

parses XML BMFont files into a JavaScript object

Package Exports

  • parse-bmfont-xml
  • parse-bmfont-xml/lib/browser.js
  • parse-bmfont-xml/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (parse-bmfont-xml) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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](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.