Как работать с настройками документа в .NET
Это руководство показывает, как работать с настройками документа на уровне приложения в Aspose.Words FOSS для .NET: переключатели совместимости со старыми версиями, параметры переноса слов, сохранённую конфигурацию слияния писем, параметры просмотра и защиту от записи. Aspose.Words FOSS для .NET доступен через NuGet или путём сборки из исходного кода.
Пошаговое руководство
Шаг 1: Получить библиотеку
Клонируйте репозиторий и соберите Aspose.Words.sln в конфигурации Release, затем добавьте ссылку на проект Aspose.Words.csproj из вашего собственного проекта .NET, как описано в руководстве по установке. Добавьте using Aspose.Words; and using Aspose.Words.Settings; в начале любого файла, который читает или записывает настройки документа.
Шаг 2: Установить параметры совместимости со старыми версиями
Document.CompatibilityOptions (экземпляр CompatibilityOptions) содержит десятки логических переключателей, которые воспроизводят определённые поведения старого оформления и интервалов в Word — например GrowAutofit, UseWord2010TableStyleRules, AdjustLineHeightInTable, AlignTablesRowByRow, NoExtraLineSpacing, SuppressSpacingAtTopOfPage и SpacingInWholePoints. Устанавливайте необходимые отдельные свойства напрямую; OptimizeFor(MsWordVersion) присутствует в классе, но в этой сборке генерирует NotImplementedException, поэтому нет быстрого способа применить профиль целой версии сразу.
Шаг 3: Настройка параметров переноса слов
Document.HyphenationOptions (экземпляр HyphenationOptions) хранит параметры переноса слов Word для документа: AutoHyphenation, ConsecutiveHyphenLimit, HyphenateCaps и HyphenationZone. Эти свойства проходят сквозной путь запроса в сохранённый файл; поскольку в этом издании нет движка верстки страниц, сами разрывы переносов вычисляются Word при открытии и пагинации файла, а не Aspose.Words FOSS.
Шаг 4: Чтение и запись конфигурации слияния почты
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 и RecipientDatas описывают сопоставление полей и список получателей. Чтение и запись этой сохранённой конфигурации доступны в этом издании с открытым исходным кодом; выполнение самого слияния с живым источником данных является отдельным вопросом, выходящим за рамки этой страницы.
Шаг 5: Настройка параметров отображения документа
Document.ViewOptions (экземпляр ViewOptions) управляет тем, как Word отображает файл после открытия: ViewType, ZoomType, ZoomPercent, DisplayBackgroundShape, DoNotDisplayPageBoundaries и FormsDesign. Эти свойства являются сохранёнными настройками, которые влияют только на отображение документа в Word — они не влияют на то, как Aspose.Words FOSS сам обрабатывает его.
Шаг 6: Применить защиту от записи
Document.WriteProtection (экземпляр WriteProtection) предоставляет IsWriteProtected и ReadOnlyRecommended, с SetPassword() для установки пароля защиты и ValidatePassword() для проверки предложенного пароля. Вызовите SetPassword() перед установкой IsWriteProtected = true и используйте ValidatePassword() вместо того, чтобы самостоятельно хранить или сравнивать необработанную строку пароля.
Распространённые проблемы и решения
CompatibilityOptions.OptimizeFor() throws NotImplementedException. Этот метод не реализован в этой сборке. Установите отдельные CompatibilityOptions логические свойства, которые вам нужны, напрямую вместо этого.
Changing ViewOptions.ZoomPercent не оказывает видимого влияния на сгенерированный вывод. ViewOptions является сохранённым предпочтением отображения, читаемым Word, а не тем, что Aspose.Words FOSS применяет самостоятельно во время обработки. Исправление не требуется — это ожидаемо.
WriteProtection.ValidatePassword() неожиданно возвращает false. SetPassword() никогда не вызывался, либо был установлен другой пароль. Вызовите SetPassword() сначала, чтобы установить защищённый пароль перед проверкой.
Конфигурация слияния почты сохраняется, но слияние не запускается. MailMergeSettings and Odso сохраняет только конфигурацию слияния; эта версия с открытым исходным кодом не выполняет само слияние. Прочитайте сохранённую конфигурацию и реализуйте собственную логику заполнения полей на её основе.
Часто задаваемые вопросы
Работает ли CompatibilityOptions.OptimizeFor()?
Нет — в этой сборке он выдаёт NotImplementedException. Установите отдельные свойства CompatibilityOptions, которые вам нужны, напрямую.
Как защитить документ паролем от правок?
Вызовите WriteProtection.SetPassword() на Document.WriteProtection, затем установите IsWriteProtected, чтобы включить защиту.
Изменяют ли HyphenationOptions и ViewOptions внешний вид документа, когда его обрабатывает Aspose.Words FOSS?
Нет. Оба являются сохранёнными настройками, которые Word применяет при открытии и отображении файла; в этом издании нет движка верстки страниц, способного работать с ними напрямую.
Где найти конфигурацию источника данных mail-merge для внешнего источника данных?
MailMergeSettings.Odso — его коллекции FieldMapDatas и RecipientDatas описывают сопоставление столбцов и состояние включения получателей.
В чём разница между Document.CompatibilityOptions и Document.ViewOptions?
CompatibilityOptions переключатели воспроизводят старый макет и особенности интервалов Word; ViewOptions управляет тем, как собственный интерфейс Word отображает файл (масштаб, знаки форматирования). Ни один из них не вычисляется самим Aspose.Words FOSS.