CompatibilityOptions

CompatibilityOptions class

Enthält Kompatibilitätsoptionen (d. h. die Benutzereinstellungen, die im eingegeben wurdenKompatibilität Registerkarte desOptionen Dialog in Microsoft Word).

Um mehr zu erfahren, besuchen Sie dieErkennen Sie das Dateiformat und prüfen Sie die Formatkompatibilität Dokumentationsartikel.

public class CompatibilityOptions

Eigenschaften

NameBeschreibung
AdjustLineHeightInTable { get; set; }Rasterlinienabstand des Dokuments zu Zeilen in Tabellenzellen hinzufügen.
AlignTablesRowByRow { get; set; }Tabellenzeilen unabhängig ausrichten.
AllowSpaceOfSameStyleInTable { get; set; }Kontextbezogene Abstände von Absätzen in Tabellen zulassen.
ApplyBreakingRules { get; set; }Verwenden Sie die alten äthiopischen und amharischen Regeln zum Zeilenumbruch.
AutofitToFirstFixedWidthCell { get; set; }Tabellenspalten dürfen die bevorzugte Breite der einzelnen Zellen überschreiten.
AutoSpaceLikeWord95 { get; set; }Word 95-Zeichenabstand in voller Breite emulieren.
BalanceSingleByteDoubleByteWidth { get; set; }Balance zwischen Einzelbyte- und Doppelbyte-Zeichen.
CachedColBalance { get; set; }Zwischengespeicherte Absatzinformationen für den Spaltenausgleich verwenden.
ConvMailMergeEsc { get; set; }Backslash-Anführungszeichen als zwei Anführungszeichen behandeln.
DisableOpenTypeFontFormattingFeatures { get; set; }Legt fest, dass Formatierungsfunktionen für OpenType-Schriftarten deaktiviert werden sollen.
DisplayHangulFixedWidth { get; set; }Verwenden Sie für Hangul-Zeichen immer eine feste Breite.
DoNotAutofitConstrainedTables { get; set; }Tabellen nicht automatisch anpassen, damit sie neben umhüllten Objekten passen.
DoNotBreakConstrainedForcedTable { get; set; }Tabellenzeilen um schwebende Tabellen herum nicht unterbrechen.
DoNotBreakWrappedTables { get; set; }Lassen Sie nicht zu, dass schwebende Tabellen seitenübergreifend umgebrochen werden.
DoNotExpandShiftReturn { get; set; }Zeilen, die mit einem weichen Zeilenumbruch enden, nicht ausrichten.
DoNotLeaveBackslashAlone { get; set; }Backslash bei Eingabe in Yen-Zeichen umwandeln.
DoNotSnapToGridInCell { get; set; }In Tabellenzellen mit Objekten nicht am Dokumentraster ausrichten.
DoNotSuppressIndentation { get; set; }Ignorieren Sie schwebende Objekte nicht, wenn Sie den Absatzeinzug berechnen.
DoNotSuppressParagraphBorders { get; set; }Absatzränder neben Rahmen nicht unterdrücken.
DoNotUseEastAsianBreakRules { get; set; }Komprimierbare Zeichen nicht komprimieren, wenn Sie das Dokumentraster verwenden.
DoNotUseHTMLParagraphAutoSpacing { get; set; }Verwenden Sie einen festen Absatzabstand für die automatische HTML-Einstellung.
DoNotUseIndentAsNumberingTabStop { get; set; }Hängenden Einzug beim Erstellen eines Tabstopps nach der Nummerierung ignorieren.
DoNotVertAlignCellWithSp { get; set; }Zellen mit schwebenden Objekten nicht vertikal ausrichten.
DoNotVertAlignInTxbx { get; set; }Vertikale Ausrichtung in Textfeldern ignorieren.
DoNotWrapTextWithPunct { get; set; }Hängende Satzzeichen mit Zeichenraster nicht zulassen.
FootnoteLayoutLikeWW8 { get; set; }Fußnotenplatzierung in Word 6.x/95/97 emulieren.
ForgetLastTabAlignment { get; set; }Ignorieren Sie die Breite des letzten Tabstopps beim Ausrichten eines Absatzes, wenn dieser nicht linksbündig ist.
GrowAutofit { get; set; }Tabellen automatisch an Seitenränder anpassen lassen.
LayoutRawTableWidth { get; set; }Leerzeichen vor der Tabelle ignorieren, wenn entschieden wird, ob die Tabelle schwebende Objekte umschließen soll.
LayoutTableRowsApart { get; set; }Tabellenzeilen erlauben, Inline-Objekte unabhängig voneinander zu umbrechen.
LineWrapLikeWord6 { get; set; }Emulieren Sie den Zeilenumbruch in Word 6.0 für ostasiatischen Text.
MWSmallCaps { get; set; }Emulieren Sie Word 5.x für die Macintosh-Kapitälchenformatierung.
NoColumnBalance { get; set; }Textspalten innerhalb eines Abschnitts nicht ausgleichen.
NoExtraLineSpacing { get; set; }Inhalt nicht auf Zeilen mit exakter Zeilenhöhe zentrieren.
NoLeading { get; set; }Fügen Sie keinen Zeilenabstand zwischen Textzeilen ein.
NoSpaceRaiseLower { get; set; }Erhöhen Sie die Zeilenhöhe für erhöhten/verringerten Text nicht.
NoTabHangInd { get; set; }Erstellen Sie keinen benutzerdefinierten Tabstopp für hängende Einzüge.
OverrideTableStyleFontSizeAndJustification { get; set; }Gibt an, wie die Stilhierarchie des Dokuments bewertet wird.
PrintBodyTextBeforeHeader { get; set; }Fließtext vor Kopf-/Fußzeileninhalt drucken.
PrintColBlack { get; set; }Drucken Sie Farben als Schwarzweiß ohne Dithering.
SelectFldWithFirstOrLastChar { get; set; }Feld auswählen, wenn das erste oder letzte Zeichen ausgewählt ist.
ShapeLayoutLikeWW8 { get; set; }Emulieren Sie den Word 97-Textumbruch um schwebende Objekte.
ShowBreaksInFrames { get; set; }In Frames vorhandene Seiten-/Spaltenumbrüche anzeigen.
SpaceForUL { get; set; }Fügen Sie zusätzlichen Platz unterhalb der Grundlinie für unterstrichenen ostasiatischen Text hinzu.
SpacingInWholePoints { get; set; }Text nur um ganze Punkte erweitern/komprimieren.
SplitPgBreakAndParaMark { get; set; }Absatzmarke nach einem Seitenumbruch immer auf die Seite verschieben.
SubFontBySize { get; set; }Erhöhen Sie die Priorität der Schriftgröße bei der Schriftartersetzung.
SuppressBottomSpacing { get; set; }Genaue Zeilenhöhe für letzte Zeile auf Seite ignorieren.
SuppressSpacingAtTopOfPage { get; set; }Mindestzeilenhöhe für erste Zeile auf Seite ignorieren.
SuppressSpBfAfterPgBrk { get; set; }Verwenden Sie kein Leerzeichen vor der ersten Zeile nach einem Seitenumbruch.
SuppressTopSpacing { get; set; }Ignorieren Sie die minimale und genaue Zeilenhöhe für die erste Zeile auf der Seite.
SuppressTopSpacingWP { get; set; }Emulieren Sie den Zeilenabstand von WordPerfect 5.x.
SwapBordersFacingPgs { get; set; }Absatzränder auf Seiten mit ungeraden Seitenzahlen vertauschen.
SwapInsideAndOutsideForMirrorIndentsAndRelativePositioning { get; set; }Gibt an, dass Innen- und Außenseite für Spiegeleinzüge und relative Positionierung vertauscht werden sollen.
TransparentMetafiles { get; set; }Gibt an, dass der Bereich hinter Metadateibildern nicht ausgeblendet wird.
TruncateFontHeightsLikeWP6 { get; set; }WordPerfect 6.x-Schrifthöhenberechnung emulieren.
UICompat97To2003 { get; set; }True, um UI-Funktionalität zu deaktivieren, die nicht mit Word97-2003 kompatibel ist. Der Standardwert istFALSCH .
UlTrailSpace { get; set; }Alle nachfolgenden Leerzeichen unterstreichen.
UnderlineTabInNumList { get; set; }Unterstreichung nach Zeichen nach Nummerierung.
UseAltKinsokuLineBreakRules { get; set; }Verwenden Sie einen alternativen Satz ostasiatischer Zeilenumbruchregeln.
UseAnsiKerningPairs { get; set; }ANSI-Kerning-Paare aus Schriftarten verwenden.
UseFELayout { get; set; }Ostasiatischen/komplexen Skript-Layout-Code nicht umgehen.
UseNormalStyleForList { get; set; }Listenabsatzstil nicht automatisch auf Aufzählungs-/Nummerierungstext anwenden.
UsePrinterMetrics { get; set; }Verwenden Sie Druckermetriken, um Dokumente anzuzeigen.
UseSingleBorderforContiguousCells { get; set; }Verwenden Sie vereinfachte Regeln für Tabellenrandkonflikte.
UseWord2002TableStyleRules { get; set; }Word 2002-Tabellenstilregeln emulieren.
UseWord2010TableStyleRules { get; set; }Gibt die Verwendung von Word2010-Tabellenstilregeln an.
UseWord97LineBreakRules { get; set; }Emulieren Sie den ostasiatischen Zeilenumbruch in Word 97.
WPJustification { get; set; }WordPerfect 6.x-Absatzausrichtung emulieren.
WPSpaceWidth { get; set; }Gibt an, ob die Breite eines Leerzeichens wie in WordPerfect 5.x festgelegt werden soll.
WrapTrailSpaces { get; set; }Nachgestellte Leerzeichen für Zeilenumbruch.

Methoden

NameBeschreibung
OptimizeFor(MsWordVersion)Ermöglicht die Optimierung des Dokumentinhalts sowie des Standardverhaltens von Aspose.Words für bestimmte Versionen von MS Word.

Beispiele

Zeigt, wie der Textinhalt eines Textfelds vertikal ausgerichtet wird.

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

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

// Setzen Sie die Eigenschaft „VerticalAnchor“ auf „TextBoxAnchor.Top“.
// Richten Sie den Text in diesem Textfeld an der Oberseite der Form aus.
// Setzen Sie die Eigenschaft „VerticalAnchor“ auf „TextBoxAnchor.Middle“.
// Richten Sie den Text in diesem Textfeld an der Mitte der Form aus.
// Setzen Sie die Eigenschaft „VerticalAnchor“ auf „TextBoxAnchor.Bottom“.
// Richten Sie den Text in diesem Textfeld am unteren Rand der Form aus.
shape.TextBox.VerticalAnchor = verticalAnchor;

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

// Die vertikale Ausrichtung von Text innerhalb von Textfeldern ist ab Microsoft Word 2007 verfügbar.
doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2007);
doc.Save(ArtifactsDir + "Shape.VerticalAnchor.docx");

Zeigt, wie eine OOXML-Konformitätsspezifikation festgelegt wird, die ein gespeichertes Dokument einhalten soll.

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

// Wenn wir Kompatibilitätsoptionen so konfigurieren, dass sie mit Microsoft Word 2003 kompatibel sind,
// Durch das Einfügen eines Bildes wird dessen Form mithilfe von VML definiert.
doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2003);
builder.InsertImage(ImageDir + "Transparent background logo.png");

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

// Der OOXML-Standard „ISO/IEC 29500:2008“ unterstützt keine VML-Formen.
// Wenn wir die Eigenschaft „Compliance“ des SaveOptions-Objekts auf „OoxmlCompliance.Iso29500_2008_Strict“ setzen,
 // Jedes Dokument, das wir speichern, während wir dieses Objekt übergeben, muss diesem Standard folgen.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions
{
    Compliance = OoxmlCompliance.Iso29500_2008_Strict,
    SaveFormat = SaveFormat.Docx
};

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

// Unser gespeichertes Dokument definiert die Form mithilfe von DML, um dem OOXML-Standard „ISO/IEC 29500:2008“ zu entsprechen.
doc = new Document(ArtifactsDir + "OoxmlSaveOptions.Iso29500Strict.docx");

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

Zeigt, wie das Dokument für verschiedene Versionen von Microsoft Word optimiert wird.

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

    // Dieses Objekt enthält eine umfangreiche Liste von Flags, die für jedes Dokument einzigartig sind
    // die es uns ermöglichen, die Abwärtskompatibilität mit älteren Versionen von Microsoft Word zu erleichtern.
    CompatibilityOptions options = doc.CompatibilityOptions;

    // Standardeinstellungen für ein leeres Dokument drucken.
    Console.WriteLine("\nDefault optimization settings:");
    PrintCompatibilityOptions(options);

    // Auf diese Einstellungen können wir in Microsoft Word über „Datei“ -> zugreifen. „Optionen“ -> „Erweitert“ –> „Kompatibilitätsoptionen für…“.
    doc.Save(ArtifactsDir + "CompatibilityOptions.OptimizeFor.DefaultSettings.docx");

    // Wir können die OptimizeFor-Methode verwenden, um eine optimale Kompatibilität mit einer bestimmten Microsoft Word-Version sicherzustellen.
    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>
/// Gruppiert alle Flags in den Kompatibilitätsoptionen eines Dokuments nach Status und gibt dann jede Gruppe aus.
/// </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}");
        }
    }
}

Siehe auch