使用链接和引用

处理链接和引用

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 (参见 字段指南)在更新包含 FieldAsk or FieldFillIn 字段的无人值守流水线中。
  • 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 摘要

类描述
FieldHyperlinkHYPERLINK 字段; Address, SubAddress, ScreenTip, OpenInNewWindow
FieldRef / FieldPageRef / FieldNoteRefREF / PAGEREF / NOTEREF 字段; 在 BookmarkName 处解析内容
FieldStyleRefSTYLEREF 字段; 解析为给定样式中的最近段落
FieldSetSET 字段; 定义一个书签文本值供 REF 解析
FieldAsk / FieldFillInASK / FILLIN 字段; 在更新期间提示输入值
FieldDde / FieldDdeAuto / FieldLinkDDE / DDEAUTO / LINK 字段; 传统 OLE 链接的外部内容
FieldImport / FieldIncludePictureIMPORT / INCLUDEPICTURE 字段; 外部图形内容
FieldInclude / FieldIncludeTextINCLUDE / INCLUDETEXT 字段;外部文档或 XML 内容
FieldAutoText / FieldAutoTextList / FieldGlossaryAUTOTEXT / AUTOTEXTLIST / GLOSSARY 字段;引用构建块条目
FieldCitation / FieldBibliographyCITATION / BIBLIOGRAPHY 字段;渲染参考文献源数据
FieldQuote / FieldShapeQUOTE / SHAPE 字段;字面字段文本
DocumentBuilder.InsertHyperlink高级超链接插入快捷键
DocumentBuilder.StartBookmark / EndBookmark / MoveToBookmark为引用目标创建书签并进行导航

另请参阅

 中文