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; } 为 Macintosh Small Caps Formatting 模拟 Word 5.x。
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 不兼容的 UI 功能。 默认值为 错误的.
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) 允许针对特定版本的 MS Word 优化文档内容以及默认 Aspose.Words 行为。

例子

显示如何垂直对齐文本框的文本内容。

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);

// “ISO/IEC 29500:2008”OOXML 标准不支持 VML 形状。
// 如果我们将 SaveOptions 对象的“Compliance”属性设置为“OoxmlCompliance.Iso29500_2008_Strict”,
 // 我们在传递此对象时保存的任何文档都必须遵循该标准。
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions
{
    Compliance = OoxmlCompliance.Iso29500_2008_Strict,
    SaveFormat = SaveFormat.Docx
};

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

// 我们保存的文档使用 DML 定义形状以符合“ISO/IEC 29500:2008”OOXML 标准。
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}");
        }
    }
}

也可以看看