/** 字符级样式 */
export interface CharStyle {
fontName?: string;
fontSize?: number;
bold?: boolean;
italic?: boolean;
underline?: boolean;
strikethrough?: boolean;
superscript?: boolean;
subscript?: boolean;
color?: string;
highlight?: string;
smallCaps?: boolean;
allCaps?: boolean;
outline?: boolean;
shadow?: boolean;
/** 字符间距(磅) */
letterSpacing?: number;
/** 隐藏文字 */
hidden?: boolean;
}
/** 字符样式段(带范围的样式应用) */
export interface CharStyleSegment {
start: number;
end: number;
style: CharStyle;
}
/** 字符格式(包含整体样式和细粒度样式段) */
export interface CharacterFormat {
fontName?: string;
fontSize?: number;
bold?: boolean;
italic?: boolean;
underline?: boolean;
strikethrough?: boolean;
superscript?: boolean;
subscript?: boolean;
color?: string;
highlight?: string;
/** 小型大写字母 */
smallCaps?: boolean;
/** 全部大写字母 */
allCaps?: boolean;
/** 字符边框 */
outline?: boolean;
/** 字符阴影 */
shadow?: boolean;
/** 字符间距(磅) */
letterSpacing?: number;
/** 隐藏文字(来自 sprmCFVanish) */
hidden?: boolean;
/** 细粒度字符样式段(每个字符位置的样式) */
styles?: CharStyleSegment[];
}
/** 边框记录结构(Brc) */
export interface ParagraphBorder {
/** 颜色索引(1-16,映射到 Word 颜色调色板) */
colorIndex?: number;
/** 线宽(1/8 磅),实际磅数 = dptLineWidth / 8 */
lineWidth?: number;
/** 边框类型:0=无, 1=单实线, 2=细点线, 3=虚线, 4=细双线, 5=双线, 6=粗线, 7=点划线 */
borderType?: number;
}
/** 段落边框(四个边) */
export interface ParagraphBorders {
top?: ParagraphBorder;
left?: ParagraphBorder;
bottom?: ParagraphBorder;
right?: ParagraphBorder;
}
/** 段落格式 */
export interface ParagraphFormat {
alignment?: 'left' | 'center' | 'right' | 'justify';
indent?: number;
firstLineIndent?: number;
/** 右缩进(磅) */
rightIndent?: number;
lineSpacing?: number;
spaceBefore?: number;
spaceAfter?: number;
/** 列表类型:ordered(编号)或 unordered(符号) */
listType?: 'ordered' | 'unordered';
/** 列表样式:decimal / lower-alpha / lower-greek / cjk-ideographic / disc / circle / square 等 */
listStyle?: string;
/** 列表层级(0 起算,按前导缩进推断)。同一连续块内 listLevel 不同的项会被渲染为嵌套列表。 */
listLevel?: number;
/** 列表唯一标识符(ilst 或 ilfo 派生),用于跨非列表段落的编号续接。 */
listId?: number;
/** 大纲级别(0-8,来自 sprmPOutlineLvl) */
outlineLevel?: number;
/** 段落背景色(来自 sprmPShd) */
backgroundColor?: string;
/** 制表位位置列表(磅值,来自 sprmPDxaTab / sprmPChgTabs) */
tabs?: number[];
/** 段落边框(来自 sprmPBrcTop/Left/Bottom/Right) */
borders?: ParagraphBorders;
/** 表格信息(来自 TAP SPRM,仅当段落属于表格行时存在) */
table?: TableInfo;
/** 段前分页(该段落前有分页符,来自段落文本中的 \f 字符) */
pageBreakBefore?: boolean;
}
/** 表格边框样式(Brc 简化结构) */
export interface TableBorderStyle {
/** 颜色索引(1-16,映射到 Word 颜色调色板) */
colorIndex?: number;
/** 线宽(1/8 磅) */
lineWidth?: number;
/** 边框类型:0=无, 1=单实线, 2=细点线, 3=虚线, 4=细双线, 5=双线, 6=粗线, 7=点划线 */
borderType?: number;
}
/** 表格边框(来自 sprmTTableBorders 0xD612) */
export interface TableBorders {
top?: TableBorderStyle;
left?: TableBorderStyle;
bottom?: TableBorderStyle;
right?: TableBorderStyle;
/** 内部水平边框 */
insideH?: TableBorderStyle;
/** 内部垂直边框 */
insideV?: TableBorderStyle;
}
/** 单元格边框(来自 sprmTDefTable 的 TC 结构) */
export interface TableCellBorders {
top?: TableBorderStyle;
left?: TableBorderStyle;
bottom?: TableBorderStyle;
right?: TableBorderStyle;
}
/** 单元格信息(来自 sprmTDefTable 的 rgtc[] 数组) */
export interface TableCellInfo {
/** 列索引(0-based) */
column: number;
/**
* 垂直合并状态(来自 TC.fVertMerge):
* - 'none' : 不合并
* - 'restart' : 合并起始单元格(rowspan 起点)
* - 'continue': 合并延续单元格(被上方单元格 rowspan 覆盖)
*/
verticalMerge: 'none' | 'restart' | 'continue';
/**
* 水平合并状态(来自 TC.fHorzMerge):
* - 'none' : 不合并
* - 'restart' : 合并起始单元格(colspan 起点)
* - 'continue': 合并延续单元格(被左侧单元格 colspan 覆盖)
*/
horizontalMerge?: 'none' | 'restart' | 'continue';
/** 单元格边框(来自 TC 的 BrcTop/BrcLeft/BrcBottom/BrcRight) */
borders?: TableCellBorders;
/** 单元格宽度(twips,来自 rgdxaCenter 差值) */
widthTwips?: number;
}
/** 表格对齐方式(来自 sprmTJTable 0xD632) */
export type TableJustification = 'left' | 'center' | 'right';
/** 表格行信息(来自 TAP — Table Properties) */
export interface TableInfo {
/** 段落是否在表格中(sprmPFInTable 0x240C) */
inTable: boolean;
/** 表格嵌套深度(sprmPTableDepth 0x4410,1=顶层表格) */
depth?: number;
/** 该行的单元格信息数组(来自 sprmTDefTable 的 rgtc[]) */
cells?: TableCellInfo[];
/** 该行的表格边框(来自 sprmTTableBorders) */
borders?: TableBorders;
/** 表格对齐方式(来自 sprmTJTable 0xD632) */
justification?: TableJustification;
/** 表格缩进(来自 sprmTDxaTableIndent 0xD609,twips) */
indentTwips?: number;
}
/** 带格式的段落 */
export interface FormattedParagraph {
text: string;
charFormat: CharacterFormat;
paraFormat: ParagraphFormat;
}
/**
* 页眉页脚子范围类型(来自 PlcfHdd 解析)。
* 对应 MS-DOC 规范中 ccpHdd story 的固定子范围顺序。
*/
export type HeaderFooterPartType = 'titleHeader' | 'titleFooter' | 'oddHeader' | 'oddFooter' | 'evenHeader' | 'evenFooter';
/**
* 页眉页脚中的图片信息。
*
* 页眉页脚中的图片与正文图片结构相同,但属于特定的页眉页脚子范围。
*/
export interface HeaderFooterImage {
/** 图片格式 */
format: string;
/** data URL(可直接用于
) */
dataUrl: string;
/** 宽度(像素),未知时为 undefined */
widthPx?: number;
/** 高度(像素),未知时为 undefined */
heightPx?: number;
/** 是否为浮动图片 */
floating?: boolean;
}
/**
* 页眉页脚子范围内容(包含文本和图片)。
*/
export interface HeaderFooterPartContent {
/** 文本内容 */
text: string;
/** 该子范围中的图片列表 */
images?: HeaderFooterImage[];
}
/**
* 文档中非正文区域的文本内容(story 分流结果)。
*
* Word 将所有 story 存储为一个连续字符流,按 FibRgLw 的 rgCcp 边界拆分。
* 各字段为原始文本(可能为空字符串),UI 层决定是否展示。
*/
export interface DocumentStories {
/** 页眉/页脚(ccpHdd)。 */
headers?: string;
/** 页眉页脚拆分结果(首页/奇偶页页眉页脚)。仅当 DOP 标志位启用且拆分成功时存在。 */
headerParts?: Partial>;
/** 页眉页脚带图片的拆分结果(包含文本和图片信息)。仅当拆分成功且有图片时存在。 */
headerPartsWithImages?: Partial>;
/** 脚注(ccpFtn)。 */
footnotes?: string;
/** 尾注(ccpEdn)。 */
endnotes?: string;
/** 批注(ccpAtn)。 */
comments?: string;
/** 文本框(ccpTxbx + ccpHdrTxbx)。 */
textboxes?: string;
}
/** 文档级标志(来自 DOP — Document Properties) */
export interface DocumentFlags {
/** 奇偶页不同(fFacingPages) */
facingPages?: boolean;
/** 首页有独立标题/页眉页脚(fTitlePage) */
titlePage?: boolean;
/** 主文档有页眉(fPMHMain) */
pmhMain?: boolean;
/** 修订模式开启(fRMW — Record Modifications) */
trackChanges?: boolean;
/** 脚注每页/每节重新编号(fFtnRestart) */
ftnRestart?: boolean;
/** 脚注在节末(fFtnEnd) */
ftnEnd?: boolean;
/** 脚注在文档末尾(fFtnAtEnd) */
ftnAtEnd?: boolean;
}
/**
* 修订类型(来自 sprmCFRMark / sprmCFRMarkDel 的组合判断):
* - 'insert' : 修订插入(fRMark=1, fRMarkDel=0)— 新增的文字
* - 'delete' : 修订删除(fRMarkDel=1)— 标记为删除的文字
* - 'format' : 格式修订(fRMark=1 且无文本变化)
*/
export type RevisionType = 'insert' | 'delete' | 'format';
/**
* 单条修订标记记录。
*
* 对应文本流中一个被修订的字符范围 [cpStart, cpEnd),附带修订元数据
* (作者、时间、类型)。元数据来自 sprmCRMark (0x0830) 的 RMRK 结构,
* 作者名通过 ibstRMark 索引到 SttbfRMark 作者表查找。
*/
export interface RevisionMark {
/** 修订范围起始 CP(character position,全局) */
cpStart: number;
/** 修订范围结束 CP(exclusive) */
cpEnd: number;
/** 修订类型 */
type: RevisionType;
/** 作者索引(到 SttbfRMark),无 RMRK 时为 undefined */
authorIndex?: number;
/** 作者名(已通过 SttbfRMark 解析),未解析作者表时为 undefined */
author?: string;
/** 修订时间戳(DTTM 转换后的 Unix 毫秒),无 RMRK 时为 undefined */
timestamp?: number;
}
/** 解析后的文档 */
export interface ParsedDocument {
paragraphs: FormattedParagraph[];
/** 非正文区域的 story 文本(页眉页脚/脚注/尾注等),无 story 数据时为 undefined。 */
stories?: DocumentStories;
/** 提取出的嵌入式图片(data URL 数组),无图片时为 undefined。 */
images?: string[];
/** 提取出的图片(结构化信息),包括格式、尺寸、浮动状态等。无图片时为 undefined。 */
pictures?: Array<{
/** 图片格式 */
format: string;
/** data URL(可直接用于
) */
dataUrl: string;
/** 宽度(像素),未知时为 undefined */
widthPx?: number;
/** 高度(像素),未知时为 undefined */
heightPx?: number;
/** 是否为浮动图片(有形状锚点),未判断时为 undefined */
floating?: boolean;
/** 在文档文本中的字符位置(cp),内联图片时有值 */
cp?: number;
}>;
/** 提取出的超链接列表,无超链接时为 undefined。 */
hyperlinks?: Array<{
cpStart: number;
cpEnd: number;
url: string;
result: string;
}>;
/** 目录条目列表,无目录时为 undefined。 */
toc?: Array<{
level: number;
text: string;
pageNumber?: string;
cp?: number;
}>;
/** 索引条目列表(来自 INDEX 域),无索引时为 undefined。 */
index?: Array<{
mainTerm: string;
subTerm?: string;
pageNumber?: string;
cp?: number;
}>;
/** 文档级标志(来自 DOP),无 DOP 数据时为 undefined。 */
docFlags?: DocumentFlags;
/** 创建文档的 Word 版本(基于 nFib 检测),未检测到时为 undefined。 */
wordVersion?: string;
/** 修订标记列表(来自 sprmCRMark/sprmCFRMark/sprmCFRMarkDel),无修订时为 undefined。 */
revisions?: RevisionMark[];
/** 文档域(来自 PlcfFld 的 AUTHOR/TITLE/DATE 等域),无域数据时为 undefined。 */
documentFields?: {
author?: string;
title?: string;
subject?: string;
keywords?: string;
comments?: string;
lastSavedBy?: string;
createDate?: string;
lastSavedDate?: string;
printDate?: string;
date?: string;
time?: string;
revisionNumber?: string;
};
/** 文档属性(标题/作者等),无属性数据时为 undefined。 */
properties?: {
title?: string;
subject?: string;
author?: string;
keywords?: string;
comments?: string;
lastAuthor?: string;
pageCount?: number;
wordCount?: number;
charCount?: number;
};
/** 书签列表(来自 PlcfBkf/PlcfBkl/SttbfBkmk),无书签时为 undefined。 */
bookmarks?: BookmarkRange[];
/** 节列表(来自 PlcfSed/SEPX),包含页面布局与分节信息,无节数据时为 undefined。 */
sections?: SectionInfo[];
/** 页码域列表(来自 PlcfFld 的 PAGE/NUMPAGES/SECTION/SECTIONPAGES),无页码域时为 undefined。 */
pageFields?: PageFieldRange[];
/** 交叉引用列表(来自 PlcfFld 的 REF/NOTEREF 域),无交叉引用时为 undefined。 */
crossReferences?: CrossReferenceRange[];
/** 形状列表(来自 Office Art Drawing Container),包含浮动图片锚点定位信息,无形状时为 undefined。 */
shapes?: ShapeInfo[];
/** 公式列表(来自 Equation Editor OLE 对象),无公式时为 undefined。 */
equations?: EquationInfo[];
/** 图表列表(来自 MSGraph/Excel/SmartArt OLE 对象),无图表时为 undefined。 */
charts?: ChartInfo[];
/** WordArt 列表(来自 Office Art Drawing WordArt 对象),无艺术字时为 undefined。 */
wordArts?: WordArtInfo[];
/** 样式集信息(来自 STSH 扩展数据或样式名推断),无样式集数据时为 undefined。 */
styleSet?: {
name: string;
isCustom?: boolean;
};
}
/**
* 书签范围记录。
*
* 对应文档中一个命名的字符范围 [cpStart, cpEnd),书签名称来自 SttbfBkmk 字符串表,
* 位置来自 PlcfBkf(起始)和 PlcfBkl(结束)。
*/
export interface BookmarkRange {
/** 书签名称 */
name: string;
/** 书签起始 CP(character position,全局) */
cpStart: number;
/** 书签结束 CP(exclusive) */
cpEnd: number;
}
/**
* 节中断类型(来自 sprmSBkc)。
* - 'nextPage' : 下一页开始(分节符 = 分页符)
* - 'oddPage' : 奇数页开始
* - 'evenPage' : 偶数页开始
* - 'continuous' : 连续(同页分节)
*/
export type SectionBreakType = 'nextPage' | 'oddPage' | 'evenPage' | 'continuous';
/**
* 页面方向(来自 sprmSBOrientation)。
*/
export type PageOrientation = 'portrait' | 'landscape';
/**
* 单个节的页面布局与属性(来自 SEPX — Section Properties)。
*
* 通过 PlcfSed 定位每个节的 SEPX 偏移,解析 grpprl 中的 Section SPRM
* 恢复页面大小、页边距、方向、分栏等属性。未指定时为 undefined,UI 使用默认值。
*/
export interface SectionInfo {
/** 节起始 CP(character position,全局) */
cpStart: number;
/** 节结束 CP(exclusive) */
cpEnd: number;
/** 节索引(0-based) */
index: number;
/** 节中断类型(来自 sprmSBkc) */
breakType?: SectionBreakType;
/** 页面方向(来自 sprmSBOrientation) */
orientation?: PageOrientation;
/** 页面宽度(磅,来自 sprmSXaPage,原始为 twips) */
pageWidthPt?: number;
/** 页面高度(磅,来自 sprmSYaPage,原始为 twips) */
pageHeightPt?: number;
/** 左页边距(磅,来自 sprmSDxaLeft) */
marginLeftPt?: number;
/** 右页边距(磅,来自 sprmSDxaRight) */
marginRightPt?: number;
/** 上页边距(磅,来自 sprmSDyaTop) */
marginTopPt?: number;
/** 下页边距(磅,来自 sprmSDyaBottom) */
marginBottomPt?: number;
/** 装订线宽度(磅,来自 sprmSDxaGutter) */
gutterPt?: number;
/** 分栏数(来自 sprmSCcolumns,默认 1) */
columnCount?: number;
/** 栏间距(磅,来自 sprmSDxaColumns) */
columnSpacingPt?: number;
/** 起始页码(来自 sprmSPgnStart,无指定时为 undefined,表示续接上一节) */
pageStart?: number;
}
/**
* 页码域类型(来自 PlcfFld 的 instruction 文本匹配)。
* - 'page' : PAGE 域,当前页码
* - 'numPages' : NUMPAGES 域,总页数
* - 'section' : SECTION 域,当前节编号
* - 'sectionPages' : SECTIONPAGES 域,当前节页数
*/
export type PageFieldType = 'page' | 'numPages' | 'section' | 'sectionPages';
/**
* 单个页码域记录。
*
* 对应文档中一个 PAGE/NUMPAGES/SECTION/SECTIONPAGES 域的范围 [cpStart, cpEnd)。
* 域的 result 是 Word 上次更新域时计算的值,用于在预览中显示页码。
*/
export interface PageFieldRange {
/** 域起始 CP(包含 0x13 字符位置) */
cpStart: number;
/** 域结束 CP(exclusive,包含 0x15 字符位置) */
cpEnd: number;
/** 域类型 */
type: PageFieldType;
/** 域指令文本(如 "PAGE"、"NUMPAGES \* MERGEFORMAT") */
instruction: string;
/** 域结果文本(如 "1"、"5"),即 Word 上次计算的页码值 */
result: string;
}
export type ShapeType = 'rectangle' | 'ellipse' | 'line' | 'freeform' | 'textbox' | 'picture' | 'group' | 'unknown';
export type ShapeAnchorType = 'char' | 'paragraph' | 'page' | 'margin' | 'unknown';
export interface ShapeInfo {
spid: number;
type: ShapeType;
name?: string;
x?: number;
y?: number;
width?: number;
height?: number;
anchorType: ShapeAnchorType;
anchorCp?: number;
hasPicture?: boolean;
fcPic?: number;
pictureFormat?: string;
floating?: boolean;
groupId?: number;
}
/**
* 公式信息(来自 Equation Editor OLE 对象)。
*
* Word 97-2003 中的公式通过 Equation Editor 作为 OLE 对象嵌入,
* 在目录表中表现为名称模式 "Equation.N" 的存储对象。
* 每个公式包含 EquationText 流存储公式的文本表示(类似 LaTeX),
* 以及 EquationNative 流存储二进制表示。
*/
export interface EquationInfo {
/** 公式编号(从 1 开始递增) */
id: number;
/** 原始公式文本(来自 EquationText 流) */
eqnText: string;
/** 转换后的 LaTeX 表示(用于渲染) */
latex: string;
/** 公式在文档中的字符位置(可选) */
cp?: number;
/** 是否有对应的图片表示 */
hasPicture?: boolean;
/** 公式格式(如 'OMML'、'Equation3' 等) */
format?: string;
}
/**
* 图表类型(通过 OLE 对象名称识别)。
* - 'msgraph' : MSGraph 图表对象
* - 'excel' : Excel 图表/表格对象
* - 'smartart' : SmartArt 图形对象
* - 'oleobject' : 通用 OLE 对象
* - 'chart' : 其他图表类型
* - 'unknown' : 未知类型
*/
export type ChartType = 'msgraph' | 'excel' | 'smartart' | 'oleobject' | 'chart' | 'unknown';
/**
* 图表子类型。
* 图表类型:column/bar/line/pie/area/scatter/doughnut/radar/surface/bubble/stock/cone/cylinder/pyramid
* SmartArt 类型:orgchart/process/cycle/hierarchy/matrix/relationship/list/picture
*/
export type ChartSubtype = 'column' | 'bar' | 'line' | 'pie' | 'area' | 'scatter' | 'doughnut' | 'radar' | 'surface' | 'bubble' | 'stock' | 'cone' | 'cylinder' | 'pyramid' | 'orgchart' | 'process' | 'cycle' | 'hierarchy' | 'matrix' | 'relationship' | 'list' | 'picture' | 'chart' | 'unknown';
/**
* 图表信息(来自 MSGraph/Excel/SmartArt OLE 对象)。
*
* Word 97-2003 中的图表和 SmartArt 通过 OLE 对象嵌入,
* 在目录表中表现为名称模式如 "MSGraph.Chart.N"、"Excel.Sheet.N"、"Object.N" 等。
*/
export interface ChartInfo {
/** 图表编号(从 1 开始递增) */
id: number;
/** 图表名称(来自 OLE 目录条目) */
name: string;
/** 图表类型 */
type: ChartType;
/** 图表子类型 */
subtype: ChartSubtype;
/** 是否有对应的图片表示 */
hasPicture?: boolean;
/** 是否有数据流 */
hasData?: boolean;
/** 数据流大小(字节) */
dataSize?: number;
/** 图片流大小(字节) */
pictureSize?: number;
/** OLE 对象类型 */
objectType?: number;
/** 图表格式(如 'MSGraph.Chart.8') */
format?: string;
/** 图表预览图 data URL(从 OLE Picture 流提取),无预览图时为 undefined */
dataUrl?: string;
}
/**
* WordArt 效果类型。
* - 'gradient' : 渐变填充
* - 'shadow' : 阴影效果
* - 'emboss' : 浮雕效果
* - 'bevel' : 斜角效果
* - 'outline' : 轮廓效果
* - 'fill' : 纯色填充
* - '3d' : 3D 效果
* - 'rotate' : 旋转效果
* - 'flip' : 翻转效果
* - 'stretch' : 拉伸效果
* - 'unknown' : 未知效果
*/
export type WordArtEffect = 'gradient' | 'shadow' | 'emboss' | 'bevel' | 'outline' | 'fill' | '3d' | 'rotate' | 'flip' | 'stretch' | 'unknown';
/**
* WordArt 信息(来自 Office Art WordArt 对象)。
*
* Word 97-2003 中的艺术字通过 Office Art Drawing 对象存储,
* 包含渐变填充、阴影、旋转等特殊文本效果。
*/
export interface WordArtInfo {
/** WordArt 编号(从 1 开始递增) */
id: number;
/** WordArt 名称(来自 OLE 目录条目) */
name: string;
/** 艺术字文本内容 */
text?: string;
/** 应用的效果列表 */
effects: WordArtEffect[];
/** 旋转角度(度) */
rotation?: number;
/** 是否水平翻转 */
flipHorizontal?: boolean;
/** 是否垂直翻转 */
flipVertical?: boolean;
/** 使用的颜色列表(十六进制) */
colors?: string[];
/** 字体名称 */
fontName?: string;
/** 字体大小(磅) */
fontSize?: number;
/** 是否有对应的图片表示 */
hasPicture?: boolean;
/** 宽度(twips) */
width?: number;
/** 高度(twips) */
height?: number;
/** 字符位置 */
cp?: number;
}
/** 交叉引用类型(通过 instruction 关键字识别)。
* Word 中 REF 域没有专门的 flt 值,通过 instruction 文本中的关键字区分:
* - 'ref' : REF 域,引用书签内容、图表编号、表格编号等
* - 'noteref' : NOTEREF 域,专门引用脚注或尾注标记
*/
export type CrossReferenceType = 'ref' | 'noteref';
/**
* 单个交叉引用域记录。
*
* 对应文档中一个 REF/NOTEREF 域的范围 [cpStart, cpEnd)。
* 域的 targetBookmarkName 指向被引用的书签名称(如 `_Ref12345`、`FootnoteRef`),
* 域的 result 是 Word 上次更新域时计算的引用文本。
*/
export interface CrossReferenceRange {
/** 域起始 CP(包含 0x13 字符位置) */
cpStart: number;
/** 域结束 CP(exclusive,包含 0x15 字符位置) */
cpEnd: number;
/** 域类型 */
type: CrossReferenceType;
/** 域指令文本(如 "REF _Ref12345 \h"、"NOTEREF FootnoteRef") */
instruction: string;
/** 被引用的书签名称(instruction 中的第一个参数) */
targetBookmarkName: string;
/** 域结果文本(如 "图 1"、"表 2"、页码等) */
result: string;
/** 域开关标志集合(从 instruction 解析,如 \h 表示超链接) */
switches: string[];
}
/** 解析结果 */
export interface ParseResult {
success: boolean;
document?: ParsedDocument;
text?: string;
error?: string;
}
/** 解析器选项 */
export interface DocParserOptions {
debug?: boolean;
}
/** @deprecated 使用 CharacterFormat 替代 */
export type CHP = CharacterFormat;
/** @deprecated 使用 ParagraphFormat 替代 */
export type PAP = ParagraphFormat;