方程式和公式字段
方程式和公式字段
本指南展示了如何使用 FieldAdvance and FieldSymbol Aspose.Words FOSS for .NET 中的字段类,实现了 Word 的 ADVANCE and SYMBOL 字段。两个类都继承自 Field 并实现 IFieldCodeTokenInfoProvider;关于基础 Field 对象模型本身,请参阅 使用字段 指南。
使用 FieldAdvance 重新定位文本
FieldAdvance 实现了 ADVANCE 字段,该字段在不插入可见字符的情况下移动其后面的文本。DownOffset、UpOffset、LeftOffset 和 RightOffset(全部为 string)按该方向将后续文本移动一定的磅数。HorizontalPosition 和 VerticalPosition(亦为 string)分别将后续文本移动到相对于列、框架或文本框左边缘以及页面顶部边缘的绝对位置。
使用 FieldSymbol 插入特殊字符
FieldSymbol 实现了 SYMBOL 字段,该字段通过代码点插入单个字符。CharacterCode(字符串)提供字符的十进制或十六进制代码点。IsAnsi、IsUnicode 和 IsShiftJis(全部为 bool)选择 CharacterCode 的解释方式。FontName 和 FontSize(字符串)设置用于呈现检索字符的字体,DontAffectsLineSpacing(bool)控制插入的字符是否影响段落的行距。
技巧与最佳实践
- 在
FieldSymbol上仅设置IsAnsi、IsUnicode或IsShiftJis中的一个,以避免对CharacterCode的歧义解释。 FieldAdvance的偏移属性是string,而不是数值类型——在设置DownOffset、UpOffset、LeftOffset、RightOffset、HorizontalPosition或VerticalPosition时,请将点值作为字符串传递。- 将
FieldSymbol.FontName设置为实际包含CharacterCode处字形的字体,否则渲染的字符可能会回退为缺失字形占位符。 - 在更改
FieldAdvance或FieldSymbol的任何属性后调用Update(),以便字段的Result/DisplayResult反映此更改。 - 在插入高的或不常见的符号字符且不应拉伸周围行高时使用
DontAffectsLineSpacing。
常见问题
| 问题 | 原因 | 修复 |
|---|---|---|
ADVANCE 字段未按预期移动文本 | 错误地设置了偏移属性,或某个值保持默认 | 设置与预期移动相匹配的特定 DownOffset / UpOffset / LeftOffset / RightOffset(相对)或 HorizontalPosition / VerticalPosition(绝对)属性 |
SYMBOL 字段显示错误字符 | CharacterCode 被以错误的编码解释 | 设置恰好一个 IsAnsi、IsUnicode 或 IsShiftJis 以匹配 CharacterCode 的编写方式 |
| 符号字符呈现为缺失字形框 | FontName 不包含 CharacterCode 的字形 | 将 FontName 设置为已知包含该字符的字体 |
FAQ
ADVANCE 字段有什么作用?
它重新定位其后面的文本,可通过相对偏移(DownOffset、UpOffset、LeftOffset、RightOffset)或绝对位置(HorizontalPosition、VerticalPosition)实现,且不插入可见字符。
如何使用 FieldSymbol 插入特定的 Unicode 字符?
将 CharacterCode 设置为字符的码点,设置 IsUnicode = true,并可选地设置 FontName / FontSize 来渲染字形。
FieldAdvance 的偏移值是数字还是字符串?
它们是 string 属性(DownOffset、UpOffset、LeftOffset、RightOffset、HorizontalPosition、VerticalPosition),符合原始字段代码参数格式。
插入 SYMBOL 字符会影响行间距吗?
将 DontAffectsLineSpacing 设置为 true,以防止插入的字符影响段落的行高。
API Reference 摘要
| 类/方法 | 描述 |
|---|---|
FieldAdvance | 实现 ADVANCE 字段;在不插入字符的情况下重新定位后续文本 |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | 相对点偏移应用于以下文本 |
FieldAdvance.HorizontalPosition / VerticalPosition | 将绝对点位置应用于以下文本 |
FieldSymbol | 实现 SYMBOL 字段;通过代码点插入字符 |
FieldSymbol.CharacterCode | 字符的代码点,以十进制或十六进制表示 |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | 选择 CharacterCode 的解释方式 |
FieldSymbol.FontName / FontSize | 用于渲染检索字符的字体 |
FieldSymbol.DontAffectsLineSpacing | 控制插入的字符是否影响段落行距 |