用户信息

用户信息

用户信息

本指南展示如何设置当前用户身份,使 Aspose.Words FOSS 用于 .NET 的报告能够通过用户相关的文档字段进行。

UserInformation 表示在评估报告“当前用户”的字段时,Aspose.Words FOSS 用于 .NET 的身份——Name、Initials 和 Address。它通过 FieldOptions.CurrentUser 附加到文档的字段评估设置中,且可通过 UserInformation.DefaultUser 提供进程范围的回退。


设置当前用户

Document.FieldOptions(一个 FieldOptions 实例)公开了 CurrentUser,一个 UserInformation 对象。在更新用户信息字段之前,设置其 Name、Initials 和 Address 属性,以便它们报告的值与您的应用程序希望记录的身份相匹配。UserInformation.DefaultUser 提供了一个静态的、进程范围的 UserInformation 实例,用于在文档的 FieldOptions.CurrentUser 未显式设置时作为回退。


用户信息字段

三个 Field 子类将当前用户的身份读取到文档正文中:FieldUserName(USERNAME 字段,具有 UserName 属性),FieldUserAddress(USERADDRESS 字段,具有 UserAddress 属性),以及 FieldUserInitials(USERINITIALS 字段,具有 UserInitials 属性)。与其他字段一样,它们共享基础的 Field 生命周期——GetFieldCode()、Result、Update()、Unlink()、Remove()——并且可以使用 FieldType.FieldUserName、FieldType.FieldUserAddress 或 FieldType.FieldUserInitials 通过 DocumentBuilder.InsertField(fieldCode) 或 InsertField(fieldType, updateField) 插入。


提示和最佳实践

  • 在对 FieldUserName、FieldUserAddress 或 FieldUserInitials 字段调用 Update() 之前,先设置 FieldOptions.CurrentUser,或在 Document.UpdateFields() 之前设置 — 否则这些字段将相对于当前生效的 UserInformation 进行解析。
  • UserInformation.DefaultUser 是一种方便的共享默认值,当相同的身份适用于应用程序处理的每个文档时使用;当不同文档需要不同作者时,请为每个文档设置 FieldOptions.CurrentUser。
  • 如果您的模板使用 FieldUserName、FieldUserAddress 和 FieldUserInitials 中的多个,请同时填入 Name、Initials 和 Address 三个字段 — 留空其中一个会产生空字段结果,而非错误。

常见问题

问题原因修复
FieldUserName 结果在 Update() 之后为空UserInformation.Name 从未在活动的 UserInformation 上设置在更新字段之前设置 FieldOptions.CurrentUser.Name(或 UserInformation.DefaultUser.Name)
用户信息字段在不同文档中显示错误的作者UserInformation.DefaultUser 在整个进程中共享为每个文档设置 Document.FieldOptions.CurrentUser,而不是依赖默认值

FAQ

FieldOptions.CurrentUser 与 UserInformation.DefaultUser 有何区别?

FieldOptions.CurrentUser 是每个文档单独设置的 — 在特定 Document 的 FieldOptions 上设置它,以控制该文档的用户信息字段。UserInformation.DefaultUser 是静态的、进程范围的回退。

哪些字段会受到 UserInformation 的影响?

FieldUserName(USERNAME)、FieldUserAddress(USERADDRESS)和FieldUserInitials(USERINITIALS)——每个都会从当前的UserInformation读取相应的Name、Address或Initials属性。

在更改 UserInformation 后,我需要调用 Update() 吗?

是的——更改 Name、Initials 或 Address 并不会追溯性地更新文档中已经评估的字段;请对特定字段调用 Update(),或调用 Document.UpdateFields()。


API Reference 摘要

类 / 属性描述
UserInformationName, Initials, Address; DefaultUser 静态回退实例
FieldOptions.CurrentUser在评估用户信息字段时使用的每文档 UserInformation
FieldUserName / FieldUserAddress / FieldUserInitialsUSERNAME, USERADDRESS, USERINITIALS 字段

另请参阅

 中文