class PDFFont { constructor() { } encode() { throw new Error('Must be implemented by subclasses'); } widthOfString() { throw new Error('Must be implemented by subclasses'); } ref() { return this.dictionary != null ? this.dictionary : (this.dictionary = this.document.ref()); } finalize() { if (this.embedded || (this.dictionary == null)) { return; } this.embed(); return this.embedded = true; } embed() { throw new Error('Must be implemented by subclasses'); } lineHeight(size, includeGap) { if (includeGap == null) { includeGap = false; } const gap = includeGap ? this.lineGap : 0; return (((this.ascender + gap) - this.descender) / 1000) * size; } } export default PDFFont;