使用文档设置

使用文档设置

使用文档设置

除了内容之外,Word 文档还携带应用层面的设置 – 旧版兼容开关、连字符首选项、已存储的邮件合并配置、视图选项和写保护状态。 Aspose.Words FOSS 用于 .NET 通过以下方式公开这些 Aspose.Words.Settings 命名空间以及其上的少量属性 Document. 本页涵盖每个设置组以及它所控制和不控制的内容。


兼容性选项

Document.CompatibilityOptions 是一个 CompatibilityOptions 实例,包含数十个布尔开关,用于再现特定旧版 Word 的布局和间距行为——例如 GrowAutofit、UseWord2010TableStyleRules、UseWord2002TableStyleRules、AdjustLineHeightInTable、AlignTablesRowByRow、NoExtraLineSpacing、SuppressSpacingAtTopOfPage、SpacingInWholePoints、UseFELayout 和 BalanceSingleByteDoubleByteWidth。直接设置所需的属性,以匹配下游读取文档的工具中特定 Word 版本的渲染细节。


连字符首选项

Document.HyphenationOptions 是一个 HyphenationOptions 实例(AutoHyphenation、ConsecutiveHyphenLimit、HyphenateCaps、HyphenationZone),用于存储文档的 Word 连字符首选项。这些属性支持请求的往返;由于此版本未包含页面布局引擎,Aspose.Words FOSS 本身不会计算连字符断点——Word 在打开并分页文件时会应用这些断点。


邮件合并配置

Document.MailMergeSettings 是一个 MailMergeSettings 实例,用于存储记录在文档中的邮件合并配置:MainDocumentType、CheckErrors、Destination、DataSource、DataType、Query、ConnectString、MailSubject、MailAsAttachment、ActiveRecord 和 ViewMergedData,以及 Clear() 和 Clone()。对于通过 Word 的 Office 数据源对象机制连接的外部数据源,MailMergeSettings.Odso 暴露了一个 Odso 实例(DataSource、DataSourceType、TableName、ColumnDelimiter、FirstRowContainsColumnNames),其 FieldMapDatas(OdsoFieldMapDataCollection 的 OdsoFieldMapData:Name、MappedName、Column、Type)和 RecipientDatas(OdsoRecipientDataCollection 的 OdsoRecipientData:Active、Column、Hash、UniqueTag)描述字段映射和收件人列表。


文档视图设置

Document.ViewOptions 是一个 ViewOptions 实例,控制 Word 打开文件时的显示方式:ViewType、ZoomType、ZoomPercent、DisplayBackgroundShape、DoNotDisplayPageBoundaries 和 FormsDesign。这些属性仅影响 Word 对文档的自身显示——对 Aspose.Words FOSS 本身的处理没有任何影响。


写保护

Document.WriteProtection 是一个 WriteProtection 实例(IsWriteProtected、ReadOnlyRecommended),具有 SetPassword() 用于设置保护密码,和 ValidatePassword() 用于检查候选密码是否匹配。


测量单位

MeasurementUnits 枚举指定 Word 在文档界面中应使用的测量单位。


技巧与最佳实践

  • CompatibilityOptions.OptimizeFor(MsWordVersion) 在类中存在,但在此构建中实现不完整——它会抛出 NotImplementedException。请直接设置所需的各个 CompatibilityOptions 布尔属性,而不要依赖 OptimizeFor 一次性应用完整的版本配置文件。
  • MailMergeSettings and Odso 存储邮件合并 configuration 该信息已记录在文档中 – 支持读取和写入该配置,但执行邮件合并(从实时数据源填充字段)不包含在此开源版本中。
  • HyphenationOptions 和 ViewOptions 都是 Word 本身应用的显示/UI 首选项——不要指望调用 Document.Save() 能根据这些设置改变文本换行或显示方式,因为此版本不包含页面布局引擎。
  • 在启用 IsWriteProtected 之前调用 WriteProtection.SetPassword(),并使用 ValidatePassword() 来检查候选密码,而不是自行存储或比较原始字符串。
  • CompatibilityOptions、HyphenationOptions、MailMergeSettings、ViewOptions 和 WriteProtection 都可以直接从 Document 访问——无需在节点树中搜索它们。

常见问题

问题原因修复
CompatibilityOptions.OptimizeFor() 抛出 NotImplementedException此构建中未实现请改为设置各个 CompatibilityOptions 布尔属性
邮件合并未将数据填充到文档中MailMergeSettings 仅存储合并配置;此版本不包含执行功能读取已存储的数据源配置并驱动您自己的字段填充逻辑,或使用商业版 Aspose.Words 用于 .NET
更改 ViewOptions.ZoomPercent 在处理文档时没有可见效果ViewOptions 只影响 Word 的显示,而不影响 Aspose.Words FOSS 的自身处理预期行为 — 无需修复
WriteProtection.ValidatePassword() 意外返回 false未先调用 SetPassword(),或设置了不同的密码在验证之前调用 SetPassword() 以建立受保护的密码

FAQ

我可以使用 Aspose.Words FOSS 来运行实际的邮件合并吗?

不。MailMergeSettings 和 Odso 允许您读取和写入存储在文档中的合并配置,但执行邮件合并——从数据源填充字段——不包含在此开源版本中。

CompatibilityOptions.OptimizeFor() 能工作吗?

不——在此构建中它会抛出 NotImplementedException。请直接设置您需要的各个 CompatibilityOptions 属性。

我该如何对文档设置密码以防止编辑?

在 Document.WriteProtection 上调用 WriteProtection.SetPassword(),然后设置 IsWriteProtected 以启用保护。

HyphenationOptions 和 ViewOptions 会改变文档的布局方式吗?

不。这两者都是 Microsoft Word 在打开和显示文件时应用的存储首选项。此版本不包含页面布局引擎,因此这些设置会直接传递,而不会让 Aspose.Words FOSS 本身根据它们计算布局。


API Reference 摘要

类 / 枚举描述
CompatibilityOptions旧版 Word 版本布局/间距开关,通过 Document.CompatibilityOptions
Compatibility为各个兼容性选项命名的枚举
MsWordVersion由 CompatibilityOptions.OptimizeFor() 使用的 Word 版本值
HyphenationOptions断字首选项,通过 Document.HyphenationOptions
MailMergeSettings通过 Document.MailMergeSettings 存储的邮件合并配置
Odso邮件合并的 Office 数据源对象连接设置
OdsoFieldMapData / OdsoFieldMapDataCollectionODSO 数据源的列到合并字段映射
OdsoRecipientData / OdsoRecipientDataCollection邮件合并的每位收件人的包含/排除状态
ViewOptionsWord 显示首选项(缩放、格式标记),通过 Document.ViewOptions
WriteProtection文档写保护状态,通过 Document.WriteProtection
MeasurementUnitsWord 在其界面中应使用的计量单位

另请参阅

 中文