使用文档设置
使用文档设置
除了内容之外,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一次性应用完整的版本配置文件。MailMergeSettingsandOdso存储邮件合并 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 / OdsoFieldMapDataCollection | ODSO 数据源的列到合并字段映射 |
OdsoRecipientData / OdsoRecipientDataCollection | 邮件合并的每位收件人的包含/排除状态 |
ViewOptions | Word 显示首选项(缩放、格式标记),通过 Document.ViewOptions |
WriteProtection | 文档写保护状态,通过 Document.WriteProtection |
MeasurementUnits | Word 在其界面中应使用的计量单位 |