CompatibilityOptions

CompatibilityOptions class

Contient les options de compatibilité (c’est-à-dire les préférences utilisateur saisies sur leCompatibilité Onglet duPossibilités boîte de dialogue dans Microsoft Word).

Pour en savoir plus, visitez leDétecter le format de fichier et vérifier la compatibilité des formats article documentaire.

public class CompatibilityOptions

Propriétés

NomLa description
AdjustLineHeightInTable { get; set; }Ajouter l’espacement des lignes de la grille du document aux lignes des cellules du tableau.
AlignTablesRowByRow { get; set; }Aligner les lignes du tableau indépendamment.
AllowSpaceOfSameStyleInTable { get; set; }Autoriser l’espacement contextuel des paragraphes dans les tableaux.
ApplyBreakingRules { get; set; }Utilisez les anciennes règles de rupture de ligne éthiopiennes et amhariques.
AutofitToFirstFixedWidthCell { get; set; }Autoriser les colonnes du tableau à dépasser les largeurs préférées des cellules constitutives.
AutoSpaceLikeWord95 { get; set; }Émuler l’espacement des caractères sur toute la largeur de Word 95.
BalanceSingleByteDoubleByteWidth { get; set; }Équilibrer les caractères à un octet et à deux octets.
CachedColBalance { get; set; }Utiliser les informations de paragraphe mises en cache pour l’équilibrage des colonnes.
ConvMailMergeEsc { get; set; }Traitez le délimiteur de citation de barre oblique inverse comme deux guillemets.
DisableOpenTypeFontFormattingFeatures { get; set; }Spécifie de désactiver les fonctionnalités de formatage de police OpenType.
DisplayHangulFixedWidth { get; set; }Utilisez toujours une largeur fixe pour les caractères Hangul.
DoNotAutofitConstrainedTables { get; set; }Ne pas ajuster automatiquement les tableaux pour les ajuster à côté des objets enveloppés.
DoNotBreakConstrainedForcedTable { get; set; }Ne coupez pas les lignes du tableau autour des tables flottantes.
DoNotBreakWrappedTables { get; set; }Ne pas autoriser la répartition des tableaux flottants sur plusieurs pages.
DoNotExpandShiftReturn { get; set; }Ne justifiez pas les lignes se terminant par un saut de ligne doux.
DoNotLeaveBackslashAlone { get; set; }Convertir la barre oblique inverse en signe Yen une fois saisi.
DoNotSnapToGridInCell { get; set; }Ne pas aligner sur la grille du document dans les cellules du tableau contenant des objets.
DoNotSuppressIndentation { get; set; }Ne pas ignorer les objets flottants lors du calcul de l’indentation du paragraphe.
DoNotSuppressParagraphBorders { get; set; }Ne supprimez pas les bordures de paragraphe à côté des cadres.
DoNotUseEastAsianBreakRules { get; set; }Ne pas compresser les caractères compressibles lors de l’utilisation de Document Grid.
DoNotUseHTMLParagraphAutoSpacing { get; set; }Utiliser l’espacement de paragraphe fixe pour le réglage automatique HTML.
DoNotUseIndentAsNumberingTabStop { get; set; }Ignorer le retrait suspendu lors de la création d’un taquet de tabulation après la numérotation.
DoNotVertAlignCellWithSp { get; set; }N’alignez pas verticalement les cellules contenant des objets flottants.
DoNotVertAlignInTxbx { get; set; }Ignorer l’alignement vertical dans les zones de texte.
DoNotWrapTextWithPunct { get; set; }Ne pas autoriser la ponctuation suspendue avec la grille de caractères.
FootnoteLayoutLikeWW8 { get; set; }Émuler le placement des notes de bas de page de Word 6.x/95/97.
ForgetLastTabAlignment { get; set; }Ignorer la largeur du dernier taquet de tabulation lors de l’alignement du paragraphe s’il n’est pas aligné à gauche.
GrowAutofit { get; set; }Autoriser les tableaux à s’adapter automatiquement aux marges de page.
LayoutRawTableWidth { get; set; }Ignorer l’espace avant le tableau pour décider si le tableau doit envelopper un objet flottant.
LayoutTableRowsApart { get; set; }Autoriser les lignes du tableau à envelopper les objets en ligne indépendamment.
LineWrapLikeWord6 { get; set; }Émuler le retour à la ligne Word 6.0 pour le texte d’Asie de l’Est.
MWSmallCaps { get; set; }Émuler Word 5.x pour le formatage Macintosh en petites majuscules.
NoColumnBalance { get; set; }Ne pas équilibrer les colonnes de texte dans une section.
NoExtraLineSpacing { get; set; }Ne pas centrer le contenu sur des lignes ayant une hauteur de ligne exacte.
NoLeading { get; set; }Ne pas ajouter d’interligne entre les lignes de texte.
NoSpaceRaiseLower { get; set; }N’augmentez pas la hauteur de ligne pour le texte surélevé/abaissé.
NoTabHangInd { get; set; }Ne pas créer de taquet de tabulation personnalisé pour le retrait suspendu.
OverrideTableStyleFontSizeAndJustification { get; set; }Spécifie comment la hiérarchie des styles du document est évaluée.
PrintBodyTextBeforeHeader { get; set; }Imprimer le corps du texte avant le contenu de l’en-tête/pied de page.
PrintColBlack { get; set; }Imprimez les couleurs en noir et blanc sans tramage.
SelectFldWithFirstOrLastChar { get; set; }Sélectionnez le champ lorsque le premier ou le dernier caractère est sélectionné.
ShapeLayoutLikeWW8 { get; set; }Émuler le texte Word 97 autour d’objets flottants.
ShowBreaksInFrames { get; set; }Afficher les sauts de page/colonne présents dans les cadres.
SpaceForUL { get; set; }Ajoutez un espace supplémentaire sous la ligne de base pour le texte souligné d’Asie de l’Est.
SpacingInWholePoints { get; set; }Développer/condenser uniquement le texte par points entiers.
SplitPgBreakAndParaMark { get; set; }Déplacez toujours la marque de paragraphe vers la page après un saut de page.
SubFontBySize { get; set; }Augmenter la priorité de la taille de la police lors de la substitution de police.
SuppressBottomSpacing { get; set; }Ignorer la hauteur exacte de la ligne pour la dernière ligne de la page.
SuppressSpacingAtTopOfPage { get; set; }Ignorer la hauteur de ligne minimale pour la première ligne de la page.
SuppressSpBfAfterPgBrk { get; set; }Ne pas utiliser d’espace avant la première ligne après un saut de page.
SuppressTopSpacing { get; set; }Ignorer la hauteur de ligne minimale et exacte pour la première ligne de la page.
SuppressTopSpacingWP { get; set; }Émuler l’espacement des lignes WordPerfect 5.x.
SwapBordersFacingPgs { get; set; }Échanger les bordures de paragraphe sur les pages impaires.
SwapInsideAndOutsideForMirrorIndentsAndRelativePositioning { get; set; }Spécifie d’échanger l’intérieur et l’extérieur pour les retraits en miroir et le positionnement relatif.
TransparentMetafiles { get; set; }Spécifie de ne pas vider la zone derrière les images du métafichier.
TruncateFontHeightsLikeWP6 { get; set; }Émuler le calcul de la hauteur de police WordPerfect 6.x.
UICompat97To2003 { get; set; }True pour désactiver la fonctionnalité de l’interface utilisateur qui n’est pas compatible avec Word97-2003. La valeur par défaut estFAUX .
UlTrailSpace { get; set; }Souligner tous les espaces de fin.
UnderlineTabInNumList { get; set; }Souligner le caractère suivant la numérotation.
UseAltKinsokuLineBreakRules { get; set; }Utiliser un ensemble alternatif de règles de rupture de ligne en Asie de l’Est.
UseAnsiKerningPairs { get; set; }Utiliser les paires de crénage ANSI à partir des polices.
UseFELayout { get; set; }Ne pas contourner le code de mise en page des scripts d’Asie de l’Est/complexe.
UseNormalStyleForList { get; set; }Ne pas appliquer automatiquement le style de paragraphe de liste au texte à puces/numéroté.
UsePrinterMetrics { get; set; }Utiliser les métriques de l’imprimante pour afficher les documents.
UseSingleBorderforContiguousCells { get; set; }Utiliser des règles simplifiées pour les conflits de bordure de tableau.
UseWord2002TableStyleRules { get; set; }Émuler les règles de style de tableau Word 2002.
UseWord2010TableStyleRules { get; set; }Spécifie d’utiliser les règles de style de tableau Word2010.
UseWord97LineBreakRules { get; set; }Émuler le saut de ligne d’Asie de l’Est de Word 97.
WPJustification { get; set; }Émuler la justification de paragraphe WordPerfect 6.x.
WPSpaceWidth { get; set; }Spécifie s’il faut définir la largeur d’un espace comme cela se fait dans WordPerfect 5.x.
WrapTrailSpaces { get; set; }Espaces de fin de retour à la ligne.

Méthodes

NomLa description
OptimizeFor(MsWordVersion)Permet d’optimiser le contenu du document ainsi que le comportement par défaut d’Aspose.Words pour une version particulière de MS Word.

Exemples

Montre comment aligner verticalement le contenu du texte d’une zone de texte.

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

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

// Définissez la propriété "VerticalAnchor" sur "TextBoxAnchor.Top" pour
// aligne le texte de cette zone de texte avec le côté supérieur de la forme.
// Définissez la propriété "VerticalAnchor" sur "TextBoxAnchor.Middle" pour
// aligne le texte de cette zone de texte au centre de la forme.
// Définissez la propriété "VerticalAnchor" sur "TextBoxAnchor.Bottom" pour
// aligne le texte de cette zone de texte au bas de la forme.
shape.TextBox.VerticalAnchor = verticalAnchor;

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

// L'alignement vertical du texte à l'intérieur des zones de texte est disponible à partir de Microsoft Word 2007.
doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2007);
doc.Save(ArtifactsDir + "Shape.VerticalAnchor.docx");

Montre comment définir une spécification de conformité OOXML à laquelle un document enregistré doit adhérer.

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

// Si nous configurons les options de compatibilité pour se conformer à Microsoft Word 2003,
// l'insertion d'une image définira sa forme en utilisant 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);

// La norme OOXML "ISO/IEC 29500:2008" ne prend pas en charge les formes VML.
// Si on fixe la propriété "Compliance" de l'objet SaveOptions à "OoxmlCompliance.Iso29500_2008_Strict",
 // tout document que nous enregistrons en transmettant cet objet devra suivre cette norme.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions
{
    Compliance = OoxmlCompliance.Iso29500_2008_Strict,
    SaveFormat = SaveFormat.Docx
};

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

// Notre document enregistré définit la forme à l'aide de DML pour adhérer à la norme OOXML "ISO/IEC 29500:2008".
doc = new Document(ArtifactsDir + "OoxmlSaveOptions.Iso29500Strict.docx");

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

Montre comment optimiser le document pour différentes versions de Microsoft Word.

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

    // Cet objet contient une liste complète d'indicateurs uniques à chaque document
    // qui nous permettent de faciliter la rétrocompatibilité avec les anciennes versions de Microsoft Word.
    CompatibilityOptions options = doc.CompatibilityOptions;

    // Imprime les paramètres par défaut pour un document vierge.
    Console.WriteLine("\nDefault optimization settings:");
    PrintCompatibilityOptions(options);

    // Nous pouvons accéder à ces paramètres dans Microsoft Word via "Fichier" -> "Options" -> "Avancé" -> "Options de compatibilité pour...".
    doc.Save(ArtifactsDir + "CompatibilityOptions.OptimizeFor.DefaultSettings.docx");

    // Nous pouvons utiliser la méthode OptimizeFor pour assurer une compatibilité optimale avec une version spécifique de 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>
/// Regroupe tous les indicateurs dans l'objet d'options de compatibilité d'un document par état, puis imprime chaque groupe.
/// </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}");
        }
    }
}

Voir également