diff --git a/src/editor/core/draw/particle/TextParticle.ts b/src/editor/core/draw/particle/TextParticle.ts index 21b6178..dc67663 100644 --- a/src/editor/core/draw/particle/TextParticle.ts +++ b/src/editor/core/draw/particle/TextParticle.ts @@ -2,6 +2,7 @@ import { ElementType, IEditorOption, IElement } from '../../..' import { PUNCTUATION_LIST } from '../../../dataset/constant/Common' import { DeepRequired } from '../../../interface/Common' import { IRowElement } from '../../../interface/Row' +import { ITextMetrics } from '../../../interface/Text' import { Draw } from '../Draw' export interface IMeasureWordResult { @@ -70,7 +71,7 @@ export class TextParticle { public measureText( ctx: CanvasRenderingContext2D, element: IElement - ): TextMetrics { + ): ITextMetrics { // 优先使用自定义字宽设置 if (element.width) { const textMetrics = ctx.measureText(element.value) diff --git a/src/editor/interface/Text.ts b/src/editor/interface/Text.ts index d04e6ac..3124dd7 100644 --- a/src/editor/interface/Text.ts +++ b/src/editor/interface/Text.ts @@ -1,5 +1,15 @@ import { TextDecorationStyle } from '../dataset/enum/Text' +export interface ITextMetrics { + width: number + actualBoundingBoxAscent: number + actualBoundingBoxDescent: number + actualBoundingBoxLeft: number + actualBoundingBoxRight: number + fontBoundingBoxAscent: number + fontBoundingBoxDescent: number +} + export interface ITextDecoration { style?: TextDecorationStyle }