FontGetFontMetrics
FontGetFontMetrics function
Get glyph count of font.
function FontGetFontMetrics(
fileBlob,
fileName
)
| Parameter | Type | Description |
|---|---|---|
| fileBlob | Blob object | Content of source font for convert. |
| fileName | string | File name. |
Return Value
JSON object
| Field | Description |
|---|---|
| errorCode | code error (0 no error) |
| errorText | text error ("" no error) |
| metrics | JSON object |
| * ascent | |
| * descent | |
| * lineGap | |
| * advanceWidthMax | |
| * minLeftSideBearing | |
| * minRightSideBearing | |
| * xMaxExtent |
Examples
Web Worker example:
/*Create Web Worker*/
const AsposeFontWebWorker = new Worker("AsposeFontforJS.js");
AsposeFontWebWorker.onerror = (evt) => console.log(`Error from Web Worker: ${evt.message}`);
AsposeFontWebWorker.onmessage = (evt) => document.getElementById("output").textContent =
evt.data == "ready"
? "loaded!"
: evt.data.json.errorCode == 0
? JSON.stringify(json).replace('"errorCode":0,"errorText":"",','')
: `Error: ${evt.data.json.errorText}`;
/*Event handler*/
const ffileFontGetMetrics = e => {
const file_reader = new FileReader();
file_reader.onload = event => {
/*Get metrics of font - Ask Web Worker*/
AsposeFontWebWorker.postMessage({ "operation": 'AsposeFontGetMetrics', "params": [event.target.result, e.target.files[0].name] }, [event.target.result]);
};
file_reader.readAsArrayBuffer(e.target.files[0]);
};
Simple example:
var ffileFontGetGlyphCount = function (e) {
const file_reader = new FileReader();
file_reader.onload = (event) => {
const json = FontGetFontMetrics(event.target.result, e.target.files[0].name);
if (json.errorCode == 0) {
document.getElementById('output').textContent = "Glyph count: " + json.glyphCount;
}
else document.getElementById('output').textContent = json.errorText;
}
file_reader.readAsArrayBuffer(e.target.files[0]);
}