CompatibilityOptions

CompatibilityOptions class

Содержит параметры совместимости (то есть пользовательские настройки, введенные на Совместимость вкладка Опции диалоговое окно в Microsoft Word).

public class CompatibilityOptions

Характеристики

Имя Описание
AdjustLineHeightInTable { get; set; } Добавить шаг линии сетки документа к строкам в ячейках таблицы.
AlignTablesRowByRow { get; set; } Независимое выравнивание строк таблицы.
AllowSpaceOfSameStyleInTable { get; set; } Разрешить контекстный интервал между абзацами в таблицах.
ApplyBreakingRules { get; set; } Используйте устаревшие правила разбиения строк на эфиопском и амхарском языках.
AutofitToFirstFixedWidthCell { get; set; } Разрешить столбцам таблицы превышать предпочтительную ширину составляющих ячеек.
AutoSpaceLikeWord95 { get; set; } Эмулировать межсимвольный интервал Word 95.
BalanceSingleByteDoubleByteWidth { get; set; } Баланс однобайтовых и двухбайтовых символов.
CachedColBalance { get; set; } Использовать информацию о кэшированных абзацах для балансировки столбцов.
ConvMailMergeEsc { get; set; } Рассматривать ограничитель обратной косой черты как две кавычки.
DisableOpenTypeFontFormattingFeatures { get; set; }
DisplayHangulFixedWidth { get; set; } Всегда используйте фиксированную ширину для символов хангыль.
DoNotAutofitConstrainedTables { get; set; } Не выполнять автоподгонку таблиц для размещения рядом с обернутыми объектами.
DoNotBreakConstrainedForcedTable { get; set; } Не разбивать строки таблицы вокруг плавающих таблиц.
DoNotBreakWrappedTables { get; set; } Не позволять плавающим таблицам разбиваться на страницы.
DoNotExpandShiftReturn { get; set; } Не выравнивать строки, заканчивающиеся мягким разрывом строки.
DoNotLeaveBackslashAlone { get; set; } Преобразование обратной косой черты в знак иены при вводе.
DoNotSnapToGridInCell { get; set; } Не привязываться к сетке документа в ячейках таблицы с объектами.
DoNotSuppressIndentation { get; set; } Не игнорировать плавающие объекты при расчете отступа абзаца.
DoNotSuppressParagraphBorders { get; set; } Не подавлять границы абзаца рядом с фреймами.
DoNotUseEastAsianBreakRules { get; set; } Не сжимайте сжимаемые символы при использовании сетки документа.
DoNotUseHTMLParagraphAutoSpacing { get; set; } Использовать фиксированный интервал между абзацами для автоматической настройки HTML.
DoNotUseIndentAsNumberingTabStop { get; set; } Игнорировать висячий отступ при создании позиции табуляции после нумерации.
DoNotVertAlignCellWithSp { get; set; } Не выравнивать по вертикали ячейки, содержащие плавающие объекты.
DoNotVertAlignInTxbx { get; set; } Игнорировать вертикальное выравнивание в текстовых полях.
DoNotWrapTextWithPunct { get; set; } Не разрешать висячую пунктуацию с сеткой символов.
FootnoteLayoutLikeWW8 { get; set; } Эмулировать размещение сносок Word 6.x/95/97.
ForgetLastTabAlignment { get; set; } Игнорировать ширину последней позиции табуляции при выравнивании абзаца, если она не выровнена по левому краю.
GrowAutofit { get; set; } Разрешить автоподгонку таблиц к полям страницы.
LayoutRawTableWidth { get; set; } Игнорировать пробел перед таблицей при принятии решения о том, должна ли таблица оборачивать плавающий объект.
LayoutTableRowsApart { get; set; } Разрешить строкам таблицы независимо оборачивать встроенные объекты.
LineWrapLikeWord6 { get; set; } Эмуляция переноса строк Word 6.0 для восточноазиатского текста.
MWSmallCaps { get; set; } Эмуляция Word 5.x для форматирования малых заглавных букв в Macintosh.
NoColumnBalance { get; set; } Не балансировать текстовые столбцы в разделе.
NoExtraLineSpacing { get; set; } Не центрировать содержимое на строках с точной высотой строки.
NoLeading { get; set; } Не добавлять интерлиньяж между строками текста.
NoSpaceRaiseLower { get; set; } Не увеличивать высоту строки для поднятого/опущенного текста.
NoTabHangInd { get; set; } Не создавать пользовательскую позицию табуляции для висячего отступа.
OverrideTableStyleFontSizeAndJustification { get; set; } Указывает, как оценивается иерархия стилей документа.
PrintBodyTextBeforeHeader { get; set; } Печатать основной текст перед содержимым верхнего/нижнего колонтитула.
PrintColBlack { get; set; } Печать цветов как черно-белых без сглаживания.
SelectFldWithFirstOrLastChar { get; set; } Выберите поле при выборе первого или последнего символа.
ShapeLayoutLikeWW8 { get; set; } Эмулировать перенос текста Word 97 вокруг плавающих объектов.
ShowBreaksInFrames { get; set; } Отображение разрывов страниц/столбцов в кадрах.
SpaceForUL { get; set; } Добавить дополнительное пространство ниже базовой линии для подчеркнутого восточноазиатского текста.
SpacingInWholePoints { get; set; } Расширить/сжать текст только целыми точками.
SplitPgBreakAndParaMark { get; set; } Всегда перемещать метку абзаца на страницу после разрыва страницы.
SubFontBySize { get; set; } Увеличить приоритет размера шрифта при замене шрифта.
SuppressBottomSpacing { get; set; } Игнорировать точную высоту строки для последней строки на странице.
SuppressSpacingAtTopOfPage { get; set; } Игнорировать минимальную высоту строки для первой строки на странице.
SuppressSpBfAfterPgBrk { get; set; } Не использовать пробел перед первой строкой после разрыва страницы.
SuppressTopSpacing { get; set; } Игнорировать минимальную и точную высоту строки для первой строки на странице.
SuppressTopSpacingWP { get; set; } Эмуляция межстрочного интервала WordPerfect 5.x.
SwapBordersFacingPgs { get; set; } Поменять местами границы абзаца на страницах с нечетными номерами.
SwapInsideAndOutsideForMirrorIndentsAndRelativePositioning { get; set; }
TransparentMetafiles { get; set; } Указывает, что область за изображениями метафайла не должна быть пустой.
TruncateFontHeightsLikeWP6 { get; set; } Эмуляция вычисления высоты шрифта WordPerfect 6.x.
UICompat97To2003 { get; set; } Истинный для отключения функций пользовательского интерфейса, несовместимых с Word97-2003. Значение по умолчанию: ЛОЖЬ .
UlTrailSpace { get; set; } Подчеркнуть все пробелы в конце.
UnderlineTabInNumList { get; set; } Подчеркивание следующего символа после нумерации.
UseAltKinsokuLineBreakRules { get; set; } Использовать альтернативный набор восточноазиатских правил разрыва строк.
UseAnsiKerningPairs { get; set; } Использовать пары кернинга ANSI из шрифтов.
UseFELayout { get; set; } Не обходить код макета восточноазиатского/сложного сценария.
UseNormalStyleForList { get; set; } Не применять автоматически стиль абзаца списка к маркированному/нумерованному тексту.
UsePrinterMetrics { get; set; } Использование показателей принтера для отображения документов.
UseSingleBorderforContiguousCells { get; set; } Используйте упрощенные правила для конфликтов границ таблицы.
UseWord2002TableStyleRules { get; set; } Эмулировать правила стиля таблицы Word 2002.
UseWord2010TableStyleRules { get; set; }
UseWord97LineBreakRules { get; set; } Эмулировать разрыв строки Word 97 в Восточной Азии.
WPJustification { get; set; } Эмуляция выравнивания абзаца WordPerfect 6.x.
WPSpaceWidth { get; set; } Указывает, следует ли устанавливать ширину пробела, как это делается в WordPerfect 5.x.
WrapTrailSpaces { get; set; } Завершающие пробелы переноса строки.

Методы

Имя Описание
OptimizeFor(MsWordVersion) Позволяет оптимизировать содержимое документа, а также поведение Aspose.Words по умолчанию для определенных версий MS Word.

Примеры

Показывает, как вертикально выровнять текстовое содержимое текстового поля.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertShape(ShapeType.TextBox, 200, 200);

// Установите для свойства "VerticalAnchor" значение "TextBoxAnchor.Top", чтобы
// выровняйте текст в этом текстовом поле по верхней стороне фигуры.
// Установите для свойства "VerticalAnchor" значение "TextBoxAnchor.Middle", чтобы
// выравниваем текст в этом текстовом поле по центру фигуры.
// Установите для свойства "VerticalAnchor" значение "TextBoxAnchor.Bottom", чтобы
// выравниваем текст в этом текстовом поле по нижней части фигуры.
shape.TextBox.VerticalAnchor = verticalAnchor;

builder.MoveTo(shape.FirstParagraph);
builder.Write("Hello world!");

// Вертикальное выравнивание текста внутри текстовых полей доступно, начиная с Microsoft Word 2007.
doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2007);
doc.Save(ArtifactsDir + "Shape.VerticalAnchor.docx");

Показывает, как установить спецификацию соответствия OOXML для сохраненного документа.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Если мы настроим параметры совместимости для соответствия Microsoft Word 2003,
// вставка изображения определит его форму с помощью VML.
doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2003);
builder.InsertImage(ImageDir + "Transparent background logo.png");

Assert.AreEqual(ShapeMarkupLanguage.Vml, ((Shape)doc.GetChild(NodeType.Shape, 0, true)).MarkupLanguage);

// Стандарт OOXML "ISO/IEC 29500:2008" не поддерживает формы VML.
// Если мы установим для свойства "Соответствие" объекта SaveOptions значение "OoxmlCompliance.Iso29500_2008_Strict",
 // любой документ, который мы сохраняем при передаче этого объекта, должен соответствовать этому стандарту.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions
{
    Compliance = OoxmlCompliance.Iso29500_2008_Strict,
    SaveFormat = SaveFormat.Docx
};

doc.Save(ArtifactsDir + "OoxmlSaveOptions.Iso29500Strict.docx", saveOptions);

// Наш сохраненный документ определяет форму с помощью DML, чтобы соответствовать стандарту OOXML "ISO/IEC 29500:2008".
doc = new Document(ArtifactsDir + "OoxmlSaveOptions.Iso29500Strict.docx");

Assert.AreEqual(ShapeMarkupLanguage.Dml, ((Shape)doc.GetChild(NodeType.Shape, 0, true)).MarkupLanguage);

Показывает, как оптимизировать документ для разных версий Microsoft Word.

public void OptimizeFor()
{
    Document doc = new Document();

    // Этот объект содержит обширный список флагов, уникальных для каждого документа
    // которые позволяют нам обеспечить обратную совместимость со старыми версиями Microsoft Word.
    CompatibilityOptions options = doc.CompatibilityOptions;

    // Печать настроек по умолчанию для пустого документа.
    Console.WriteLine("\nDefault optimization settings:");
    PrintCompatibilityOptions(options);

    // Мы можем получить доступ к этим настройкам в Microsoft Word через «Файл» -> "Опции" -> «Дополнительно» -> "Параметры совместимости для...".
    doc.Save(ArtifactsDir + "CompatibilityOptions.OptimizeFor.DefaultSettings.docx");

    // Мы можем использовать метод OptimizeFor, чтобы обеспечить оптимальную совместимость с определенной версией Microsoft Word.
    doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2010);
    Console.WriteLine("\nOptimized for Word 2010:");
    PrintCompatibilityOptions(options);

    doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2000);
    Console.WriteLine("\nOptimized for Word 2000:");
    PrintCompatibilityOptions(options);
}

/// <summary>
/// Группирует все флаги в объекте параметров совместимости документа по состоянию, а затем печатает каждую группу.
/// </summary>
private static void PrintCompatibilityOptions(CompatibilityOptions options)
{
    for (int i = 1; i >= 0; i--)
    {
        Console.WriteLine(Convert.ToBoolean(i) ? "\tEnabled options:" : "\tDisabled options:");
        SortedSet<string> optionNames = new SortedSet<string>();

        foreach (System.ComponentModel.PropertyDescriptor descriptor in System.ComponentModel.TypeDescriptor.GetProperties(options))
        {
            if (descriptor.PropertyType == Type.GetType("System.Boolean") && i == Convert.ToInt32(descriptor.GetValue(options)))
            {
                optionNames.Add(descriptor.Name);
            }
        }

        foreach (string s in optionNames)
        {
            Console.WriteLine($"\t\t{s}");
        }
    }
}

Смотрите также