import fs from 'fs'; import * as fontkit from 'fontkit'; import StandardFont from './font/standard'; import EmbeddedFont from './font/embedded'; class PDFFontFactory { static open(document, src, family, id) { let font; if (typeof src === 'string') { if (StandardFont.isStandardFont(src)) { return new StandardFont(document, src, id); } src = fs.readFileSync(src); } if (src instanceof Uint8Array) { font = fontkit.create(src, family); } else if (src instanceof ArrayBuffer) { font = fontkit.create(new Uint8Array(src), family); } if (font == null) { throw new Error('Not a supported font format or standard PDF font.'); } return new EmbeddedFont(document, font, id); } } export default PDFFontFactory;