Работа с настройками документа
Работа с настройками документа
Помимо содержимого, документ 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(). Для внешних источников данных, подключаемых через механизм Office Data Source Object в Word, 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 — не ожидайте, что вызовDocument.Save()изменит перенос текста или его отображение в соответствии с этими параметрами, поскольку в этой версии отсутствует движок верстки страниц.- Вызовите
WriteProtection.SetPassword()перед включениемIsWriteProtectedи используйтеValidatePassword()для проверки предлагаемого пароля, вместо того чтобы хранить или сравнивать сырую строку самостоятельно. CompatibilityOptions,HyphenationOptions,MailMergeSettings,ViewOptionsиWriteProtectionдоступны напрямую изDocument— нет необходимости искать их в дереве узлов.
Распространённые проблемы
| Проблема | Причина | Исправление |
|---|---|---|
CompatibilityOptions.OptimizeFor() выбрасывает NotImplementedException | Не реализовано в этой сборке | Вместо этого установите отдельные булевые свойства CompatibilityOptions |
| Слияние почты не заполняет документ данными | MailMergeSettings только хранит конфигурацию слияния; выполнение не включено в эту редакцию | Прочитайте сохранённую конфигурацию источника данных и реализуйте собственную логику заполнения полей, или используйте commercial Aspose.Words для .NET |
Изменение ViewOptions.ZoomPercent не оказывает видимого эффекта при обработке документа | ViewOptions влияет только на отображение в Word, а не на собственную обработку Aspose.Words FOSS | Ожидаемое поведение – исправление не требуется |
WriteProtection.ValidatePassword() возвращает false неожиданно | SetPassword() не был вызван первым, или был установлен другой пароль | Вызовите SetPassword(), чтобы установить защищённый пароль перед проверкой |
FAQ
Могу ли я использовать Aspose.Words FOSS для выполнения реального слияния почты?
Нет. MailMergeSettings и Odso позволяют вам читать и записывать конфигурацию слияния, хранящуюся в документе, но выполнение рассылки почты – заполнение полей из источника данных – не включено в эту open-source edition.
Работает ли CompatibilityOptions.OptimizeFor()?
Нет – в этой сборке он выдает NotImplementedException. Вместо этого задайте нужные отдельные свойства CompatibilityOptions напрямую.
Как защитить документ паролем от редактирования?
Вызовите WriteProtection.SetPassword() на Document.WriteProtection, затем установите IsWriteProtected, чтобы включить защиту.
Влияют ли HyphenationOptions и ViewOptions на расположение документа?
Нет. Оба являются сохранёнными настройками, которые Microsoft Word применяет при открытии и отображении файла. Эта редакция не включает движок размещения страниц, поэтому эти параметры передаются без Aspose.Words FOSS, который сам вычислял бы макет на их основе.
API Reference Сводка
| Класс / Перечисление | Описание: |
|---|---|
CompatibilityOptions | Устаревшие переключатели макета/отступов версии Word, через Document.CompatibilityOptions |
Compatibility | Перечисление, задающее отдельные параметры совместимости |
MsWordVersion | Значения версии Word, используемые CompatibilityOptions.OptimizeFor() |
HyphenationOptions | Настройки переносов, через Document.HyphenationOptions |
MailMergeSettings | Сохранённая конфигурация mail-merge, через Document.MailMergeSettings |
Odso | Настройки подключения Office Data Source Object для mail merge |
OdsoFieldMapData / OdsoFieldMapDataCollection | Сопоставление столбцов с полями слияния для источника данных ODSO |
OdsoRecipientData / OdsoRecipientDataCollection | Состояние включения/исключения получателя для mail merge |
ViewOptions | Настройки отображения Word (масштаб, знаки форматирования), через Document.ViewOptions |
WriteProtection | Состояние защиты от записи документа, через Document.WriteProtection |
MeasurementUnits | Единица измерения, которую Word должен использовать в интерфейсе |