mirror of
https://github.com/foliojs/pdfkit.git
synced 2025-12-08 20:15:54 +00:00
33 lines
893 B
JavaScript
33 lines
893 B
JavaScript
import fs from 'fs';
|
|
import 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 (Buffer.isBuffer(src)) {
|
|
font = fontkit.create(src, family);
|
|
} else if (src instanceof Uint8Array) {
|
|
font = fontkit.create(Buffer.from(src), family);
|
|
} else if (src instanceof ArrayBuffer) {
|
|
font = fontkit.create(Buffer.from(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;
|