Compatibility

Compatibility enumeration

Specifica i nomi delle opzioni di compatibilità.

public enum Compatibility

I valori

Nome Valore Descrizione
NoTabHangInd 0
NoSpaceRaiseLower 1
SuppressSpBfAfterPgBrk 2
WrapTrailSpaces 3
PrintColBlack 4
NoColumnBalance 5
ConvMailMergeEsc 6
SuppressTopSpacing 7
UseSingleBorderforContiguousCells 8
TransparentMetafiles 9
ShowBreaksInFrames 10
SwapBordersOddFacingPgs 11
DoNotLeaveBackslashAlone 12
DoNotExpandOnShiftReturn 13
UlTrailSpace 14
BalanceSingleByteDoubleByteWidth 15
SuppressTopSpacingAtTopOfPage 16
SpacingInWholePoints 17
PrintBodyTextBeforeHeader 18
NoLeading 19
SpaceForUL 20
MWSmallCaps 21
SuppressTopLineSpacingWP 22
TruncateFontHeightLikeWP6 23
SubFontBySize 24
LineWrapLikeWord6 25
DoNotSuppressParagraphBorder 26
NoExtraLineSpacing 27
SuppressBottomSpacing 28
WPSpaceWidth 29
WPJustification 30
UsePrinterMetrics 31
ShapeLayoutLikeWW8 32
FootnoteLayoutLikeWW8 33
DoNotUseHtmlParagraphAutoSpacing 34
AdjustLineHeightInTable 35
ForgetLastTabAlignment 36
AutoSpaceLikeWord95 37
AlignTableRowByRow 38
LayoutRawTableWidth 39
LayoutTableRowsApart 40
UseWord97LineBreakRules 41
DoNotBreakWrappedTables 42
doNotSnapToGridInCell 43
SelectFldWithFirstOrLastChar 44
ApplyBreakingRules 45
DoNotWrapTextWithPunct 46
DoNotUseEastAsianBreakRules 47
UseWord2002TableStyleRules 48
GrowAutofit 49
UseNormalStyleForList 50
DoNotUseIndentAsNumberingTabStop 51
UseAltKinsokuLineBreakRules 52
AllowSpaceOfSameStyleInTable 53
DoNotSuppressIndentation 54
DoNotAutofitConstrainedTables 55
AutofitToFirstFixedWidthCell 56
UnderlineTabInNumList 57
DisplayHangulFixedWidth 58
SplitPgBreakAndParaMark 59
DoNotVertAlignCellWithSp 60
DoNotBreakConstrainedForcedTable 61
DoNotVertAlignInTxbx 62
UseAnsiKerningPairs 63
CachedColBalance 64
UseFELayout 65
UICompat97To2003 66
OverrideTableStyleFontSizeAndJustification 67
DisableOpenTypeFontFormattingFeatures 68
SwapInsideAndOutsideForMirrorIndentsAndRelativePositioning 69
UseWord2010TableStyleRules 70

Esempi

Mostra come ottimizzare il documento per diverse versioni di Microsoft Word.

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

    // Questo oggetto contiene un ampio elenco di flag univoci per ogni documento
    // che ci consentono di facilitare la compatibilità con le versioni precedenti di Microsoft Word.
    CompatibilityOptions options = doc.CompatibilityOptions;

    // Stampa le impostazioni predefinite per un documento vuoto.
    Console.WriteLine("\nDefault optimization settings:");
    PrintCompatibilityOptions(options);

    // Possiamo accedere a queste impostazioni in Microsoft Word tramite "File" -> "Opzioni" -> "Avanzate" -> "Opzioni di compatibilità per...".
    doc.Save(ArtifactsDir + "CompatibilityOptions.OptimizeFor.DefaultSettings.docx");

    // Possiamo utilizzare il metodo OptimizeFor per garantire la compatibilità ottimale con una specifica versione di 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>
/// Raggruppa tutti i flag nelle opzioni di compatibilità di un documento oggetto per stato, quindi stampa ogni gruppo.
/// </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}");
        }
    }
}

Guarda anche