mirror of
https://github.com/foliojs/pdfkit.git
synced 2025-12-08 20:15:54 +00:00
* 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>
31 lines
791 B
JavaScript
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;
|