pdfkit/lib/font_factory.js
Devon Govett f238d1b107
Bump fontkit and linebreak deps (#1367)
* Bump fontkit and linebreak deps

* Bump fontkit to 2.0.0

* Bump

* Drop old node versions

* Bump testing dependencies

* Update pdfjs

* fix jest to compatibility with restructure, update fontkit, refresh snapshots

* Update CHANGELOG.md

---------

Co-authored-by: Libor M. <liborm85@gmail.com>
2024-12-16 08:36:25 +01:00

31 lines
791 B
JavaScript

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;