2014-08-24 4 views
1

Я использую библиотеку, которая имеет это в documentantion:Создание объекта файла из пути

opentype.parse(buffer)

Parse an ArrayBuffer containing OpenType font data

Когда я пытаюсь передать в качестве параметра URL расположение моего файла, это, кажется, не в состоянии и броски эта ошибка:

Uncaught TypeError: First argument to DataView constructor must be an ArrayBuffer

Из чего я понимаю, эта функция ожидает нечто вроде файла. Как я могу сделать эту работу только с пути к файлу, который находится в корневом каталоге моего приложения?

+0

Можете ли вы сказать название этой библиотеки? – Oriol

+0

Я бы предположил, что https://github.com/nodebox/opentype.js –

+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 
}); 
Смежные вопросы