使用链接和引用
处理链接和引用
Word 的链接和交叉引用字段代码 – HYPERLINK, REF, PAGEREF, NOTEREF, STYLEREF, SET, ASK, FILLIN, CITATION, BIBLIOGRAPHY,以及更多 – 均实现为专用的 Field 子类在 Aspose.Words FOSS 用于 .NET。所有这些类位于 Aspose.Words.Fields 命名空间中,与其他所有字段类型并列;本页将专门涉及链接、交叉引用、提示值和引用的类进行归类,并说明每个类公开的内容。
Hyperlinks
FieldHyperlink 代表 HYPERLINK 字段:Address 和 SubAddress 保存目标 URL 或文档内位置,ScreenTip 设置悬停提示,OpenInNewWindow 和 IsImageMap 为显示标志,Target 指定浏览器框架。对于简单情况,DocumentBuilder.InsertHyperlink() 直接插入超链接字段,而无需手动构建 Field 对象。
对书签的交叉引用
FieldRef(REF 字段)、FieldPageRef(PAGEREF)以及 FieldNoteRef(NOTEREF)均通过其 BookmarkName 属性解析为命名书签处的内容,InsertHyperlink 和 InsertRelativePosition 控制引用是否可点击以及是否报告相对位置(“上方”/“下方”)。FieldRef 添加段落编号选项(InsertParagraphNumber、InsertParagraphNumberInFullContext、InsertParagraphNumberInRelativeContext、NumberSeparator)以及 IncludeNoteOrComment。FieldStyleRef(STYLEREF)则解析为最近的使用给定 StyleName 格式的段落,并可通过 SearchFromBottom 从字段位置向后搜索。这些字段指向的书签由 DocumentBuilder.StartBookmark() 和 EndBookmark() 创建,并可使用 MoveToBookmark() 进行导航。FieldSet(SET)定义了书签文本值——BookmarkName 和 BookmarkText——可供其他位置的 REF 字段解析。
提示值字段
FieldAsk (ASK)和 FieldFillIn (FILLIN)请求一个值,来自更新该字段的任何人: PromptText 显示给用户, DefaultResponse 提供回退,且 PromptOnceOnMailMerge 限制邮件合并期间的重复提示。 FieldAsk 另外将其答案存储在 BookmarkName 供其他字段引用。参见 字段指南 for IFieldUserPromptRespondent,该回调以编程方式提供这些字段的答案,而不是交互式提示。
外部和链接内容
FieldDde(DDE)和FieldDdeAuto(DDEAUTO)通过ProgId、SourceFullName和SourceItem链接到另一个应用程序中的内容,使用InsertAsText、InsertAsHtml、InsertAsPicture、InsertAsRtf、InsertAsUnicode和InsertAsBitmap选择插入的表示形式,AutoUpdate/IsLinked控制刷新行为。FieldLink(LINK)是OLE链接的等价物,添加了FormatUpdateType。FieldImport(IMPORT)和FieldIncludePicture(INCLUDEPICTURE)通过SourceFullName和GraphicFilter拉入外部图形。FieldInclude(INCLUDE)和FieldIncludeText(INCLUDETEXT)拉入外部文档内容,使用BookmarkName来限定包含范围,使用LockFields防止其刷新;FieldIncludeText还通过Encoding、MimeType、NamespaceMappings、XPath和XslTransformation支持XML源。
AutoText和术语表引用
FieldAutoText(AUTOTEXT),FieldAutoTextList(AUTOTEXTLIST)和FieldGlossary(GLOSSARY)都通过EntryName引用一个具名的构件条目;FieldAutoTextList为其列表样式呈现添加了ListStyle和ScreenTip。
引用和参考文献字段
FieldCitation (CITATION)且 FieldBibliography (BIBLIOGRAPHY) 渲染来源于文档参考文献数据的内容。 FieldCitation.SourceTag (以及备用 AnotherSourceTag) 标识它引用的来源,使用 Prefix, Suffix, PageNumber, VolumeNumber,以及 Suppress* 标志 (SuppressAuthor, SuppressTitle, SuppressYear) 控制引用的格式。 FieldBibliography.SourceTag, FilterLanguageId,以及 FormatLanguageId 控制哪些来源出现在渲染后的参考文献中以及使用何种语言。底层源记录这些字段进行渲染 – Source, Contributor, Person —— 已在 参考文献指南.
引用和形状文本字段
FieldQuote (QUOTE) 和 FieldShape (SHAPE) 都暴露一个 Text 属性,保存字面字段文本——FieldQuote 将其直接插入字段位置,而 FieldShape 将其关联到绘图形状的携带文本的字段代码。
提示与最佳实践
- 对于直接的超链接插入,首选
DocumentBuilder.InsertHyperlink();只有在需要诸如ScreenTip或IsImageMap等构建器快捷方式未暴露的属性时,才降级为直接构建FieldHyperlink。 FieldRef、FieldPageRef、FieldNoteRef和FieldSet都通过BookmarkName协同工作——在更新引用该书签的字段之前,请确保目标书签已存在(通过DocumentBuilder.StartBookmark()/EndBookmark())。- 设置
FieldOptions.UserPromptRespondent(参见 字段指南)在更新包含FieldAskorFieldFillIn字段的无人值守流水线中。 FieldDde和FieldDdeAuto采用了传统的 Windows OLE 链接机制——在 Windows 之外处理文档时,将AutoUpdate和IsLinked视为信息性内容,因为它们通常刷新自的外部应用程序不可用。- 引用和参考文献字段仅在文档的底层
Source记录存在 – 请参见 参考文献指南 用于构建它们。
常见问题
| 问题 | 原因 | 修复 |
|---|---|---|
REF / PAGEREF / NOTEREF 字段显示错误结果 | 它所指向的 BookmarkName 在文档中不存在 | 在更新字段之前,使用 DocumentBuilder.StartBookmark() / EndBookmark() 创建书签 |
ASK / FILLIN 字段阻止无人值守的更新 | 未分配 IFieldUserPromptRespondent | 分配 FieldOptions.UserPromptRespondent,或在字段上设置 DefaultResponse |
CITATION 或 BIBLIOGRAPHY 字段渲染为空 | 该 SourceTag 与文档的参考文献数据中的任何 Source 都不匹配 | 添加匹配项 Source – 查看 参考文献指南 |
DDE / DDEAUTO / LINK 字段未刷新 | 这些引用了外部 OLE 源,但在当前环境中不可用 | 预期在原始 Windows/OLE 环境之外——将存储的 Result 视为最后已知的值 |
FAQ
FieldRef 与 FieldStyleRef 有什么区别?
FieldRef 解析为位于命名书签(BookmarkName)处的内容;FieldStyleRef 则解析为使用给定 StyleName 格式的最近段落,独立于书签。
如何在不手动构建 Field 的情况下插入一个简单的超链接?
调用 DocumentBuilder.InsertHyperlink()。
这些链接和引用字段类是否位于与其他字段不同的命名空间中?
不—— FieldHyperlink, FieldRef, FieldCitation, 并且此页上的其余类是普通的 Field 子类在的 Aspose.Words.Fields 命名空间,同一命名空间在以下内容中涉及 字段指南.
引文字段与参考文献数据模型有何关联?
FieldCitation and FieldBibliography 通过查找来渲染内容 SourceTag 针对 Source 在…上描述的记录 参考文献指南 – 字段类负责渲染,而 Source / Contributor 类保存底层数据。
API Reference 摘要
| 类 | 描述 |
|---|---|
FieldHyperlink | HYPERLINK 字段; Address, SubAddress, ScreenTip, OpenInNewWindow |
FieldRef / FieldPageRef / FieldNoteRef | REF / PAGEREF / NOTEREF 字段; 在 BookmarkName 处解析内容 |
FieldStyleRef | STYLEREF 字段; 解析为给定样式中的最近段落 |
FieldSet | SET 字段; 定义一个书签文本值供 REF 解析 |
FieldAsk / FieldFillIn | ASK / FILLIN 字段; 在更新期间提示输入值 |
FieldDde / FieldDdeAuto / FieldLink | DDE / DDEAUTO / LINK 字段; 传统 OLE 链接的外部内容 |
FieldImport / FieldIncludePicture | IMPORT / INCLUDEPICTURE 字段; 外部图形内容 |
FieldInclude / FieldIncludeText | INCLUDE / INCLUDETEXT 字段;外部文档或 XML 内容 |
FieldAutoText / FieldAutoTextList / FieldGlossary | AUTOTEXT / AUTOTEXTLIST / GLOSSARY 字段;引用构建块条目 |
FieldCitation / FieldBibliography | CITATION / BIBLIOGRAPHY 字段;渲染参考文献源数据 |
FieldQuote / FieldShape | QUOTE / SHAPE 字段;字面字段文本 |
DocumentBuilder.InsertHyperlink | 高级超链接插入快捷键 |
DocumentBuilder.StartBookmark / EndBookmark / MoveToBookmark | 为引用目标创建书签并进行导航 |