X-Git-Url: https://git.kianting.info/?a=blobdiff_plain;f=src%2Flibclo%2Findex.ts;h=bb884fae1260a5fed6209a6895b835091f3a4607;hb=830387283a88441140be5a9ebd13f36551bd15c7;hp=917cf68afbb1f8061105241b729ee808e85ea543;hpb=c3dc58d74afa6b298d84bad90d63c027a32a954a;p=clo diff --git a/src/libclo/index.ts b/src/libclo/index.ts index 917cf68..bb884fa 100644 --- a/src/libclo/index.ts +++ b/src/libclo/index.ts @@ -1,7 +1,8 @@ -import { isKeyObject, isStringObject } from "util/types"; +import { isBoxedPrimitive, isKeyObject, isStringObject } from "util/types"; import {tkTree} from "../parser"; -import {FontStyle, TextStyle, TextWeight} from "../canva"; +import {FontStyle, TextStyle, TextWeight, fontStyleTofont} from "../canva"; import { JSDOM } from "jsdom"; +import * as fontkit from "fontkit"; /** * TYPES @@ -30,13 +31,21 @@ export interface FrameBox extends Box{ baseLineskip : number | null, } +export interface CharBox extends Box{ + minX: number, + maxX: number, + minY: number, + maxY: number, + +} + /** * a basic Box * - x : * - y : * - textStyle : * - direction : - * - width : + * - width : x_advance * - content : */ export interface Box{ @@ -257,45 +266,75 @@ export function hyphenTkTree(arr : tkTree, lang: string) : tkTree{ * @param preprocessed * @param defaultFontStyle */ -export function calculateTextWidthHeight(preprocessed : tkTree, style : TextStyle): void { - var dom = new JSDOM(`
- `); +export async function calculateTextWidthHeight(element : tkTree, style : TextStyle): Promise