我正在使用一个在文档中具有此功能的库:
opentype.parse(缓冲液)
解析包含OpenType字体数据的ArrayBuffer
当我尝试将参数作为参数传递给我的文件的URL位置时,它似乎失败并抛出此错误:
Uncaught TypeError:DataView构造函数的第一个参数必须是 ArrayBuffer
根据我的理解,这个函数需要像File Object这样的东西。如何仅使用位于我的应用程序根目录中的文件路径来完成此工作?
答案 0 :(得分:1)
var opentype = require('opentype.js');
var fs = require('fs');
function toArrayBuffer(buffer) {
var ab = new ArrayBuffer(buffer.length);
var view = new Uint8Array(ab);
for (var i = 0; i < buffer.length; ++i) {
view[i] = buffer[i];
}
return ab;
}
fs.readFile('font.otf', function(err, buffer) {
if (err) throw errr;
var font = opentype.parse(toArrayBuffer(buffer));
console.log(font); // this is a Font object
});
请注意,您将使用加载方法获得相同的结果:
opentype.load('font.otf', function (err, font) {
if (err) throw err;
console.log(font); // this is a Font object
});