CompatibilityOptions

CompatibilityOptions class

Contiene le opzioni di compatibilità (ovvero le preferenze dell’utente immesse nel fileCompatibilità scheda delOpzioni finestra di dialogo in Microsoft Word).

Per saperne di più, visita ilRileva il formato del file e controlla la compatibilità del formato articolo di documentazione.

public class CompatibilityOptions

Proprietà

NomeDescrizione
AdjustLineHeightInTable { get; set; }Aggiungi passo linea griglia documento alle linee nelle celle della tabella.
AlignTablesRowByRow { get; set; }Allinea le righe della tabella in modo indipendente.
AllowSpaceOfSameStyleInTable { get; set; }Consenti spaziatura contestuale dei paragrafi nelle tabelle.
ApplyBreakingRules { get; set; }Utilizza le regole di interruzione della riga legacy in etiope e amarico.
AutofitToFirstFixedWidthCell { get; set; }Consenti alle colonne della tabella di superare la larghezza preferita delle celle costituenti.
AutoSpaceLikeWord95 { get; set; }Emula spaziatura caratteri a larghezza intera Word 95.
BalanceSingleByteDoubleByteWidth { get; set; }Bilancia i caratteri a byte singolo e a byte doppio.
CachedColBalance { get; set; }Utilizza le informazioni sui paragrafi memorizzate nella cache per il bilanciamento delle colonne.
ConvMailMergeEsc { get; set; }Tratta il delimitatore delle virgolette barra rovesciata come due virgolette.
DisableOpenTypeFontFormattingFeatures { get; set; }Specifica di disabilitare le funzionalità di formattazione dei caratteri OpenType.
DisplayHangulFixedWidth { get; set; }Utilizza sempre larghezza fissa per i caratteri Hangul.
DoNotAutofitConstrainedTables { get; set; }Non adattare automaticamente le tabelle per adattarle agli oggetti spostati.
DoNotBreakConstrainedForcedTable { get; set; }Non interrompere le righe della tabella attorno alle tabelle mobili.
DoNotBreakWrappedTables { get; set; }Non consentire l’interruzione delle tabelle mobili su più pagine.
DoNotExpandShiftReturn { get; set; }Non giustificare le righe che terminano con un’interruzione di riga morbida.
DoNotLeaveBackslashAlone { get; set; }Converti la barra rovesciata nel segno dello yen quando inserita.
DoNotSnapToGridInCell { get; set; }Non eseguire l’allineamento alla griglia del documento nelle celle della tabella con oggetti.
DoNotSuppressIndentation { get; set; }Non ignorare gli oggetti mobili durante il calcolo del rientro del paragrafo.
DoNotSuppressParagraphBorders { get; set; }Non sopprimere i bordi del paragrafo accanto ai frame.
DoNotUseEastAsianBreakRules { get; set; }Non comprimere i caratteri comprimibili quando si utilizza la griglia del documento.
DoNotUseHTMLParagraphAutoSpacing { get; set; }Utilizza spaziatura paragrafo fissa per l’impostazione automatica HTML.
DoNotUseIndentAsNumberingTabStop { get; set; }Ignora il rientro sporgente durante la creazione di una tabulazione dopo la numerazione.
DoNotVertAlignCellWithSp { get; set; }Non allineare verticalmente le celle contenenti oggetti mobili.
DoNotVertAlignInTxbx { get; set; }Ignora l’allineamento verticale nelle caselle di testo.
DoNotWrapTextWithPunct { get; set; }Non consentire la punteggiatura sporgente con la griglia dei caratteri.
FootnoteLayoutLikeWW8 { get; set; }Emula Word 6.x/95/97 Posizionamento delle note a piè di pagina.
ForgetLastTabAlignment { get; set; }Ignora la larghezza dell’ultima tabulazione durante l’allineamento del paragrafo se non è allineato a sinistra.
GrowAutofit { get; set; }Consenti l’adattamento automatico delle tabelle ai margini della pagina.
LayoutRawTableWidth { get; set; }Ignora lo spazio prima della tabella quando decidi se la tabella deve racchiudere l’oggetto mobile.
LayoutTableRowsApart { get; set; }Consenti alle righe della tabella di racchiudere gli oggetti in linea in modo indipendente.
LineWrapLikeWord6 { get; set; }Emula il ritorno a capo di Word 6.0 per il testo dell’Asia orientale.
MWSmallCaps { get; set; }Emula Word 5.x per la formattazione Maiuscoletto Macintosh.
NoColumnBalance { get; set; }Non bilanciare le colonne di testo all’interno di una sezione.
NoExtraLineSpacing { get; set; }Non centrare il contenuto su righe con altezza esatta.
NoLeading { get; set; }Non aggiungere l’interlinea tra le righe di testo.
NoSpaceRaiseLower { get; set; }Non aumentare l’altezza della riga per il testo alzato/abbassato.
NoTabHangInd { get; set; }Non creare tabulazioni personalizzate per il rientro sporgente.
OverrideTableStyleFontSizeAndJustification { get; set; }Specifica come viene valutata la gerarchia di stili del documento.
PrintBodyTextBeforeHeader { get; set; }Stampa il corpo del testo prima del contenuto dell’intestazione/piè di pagina.
PrintColBlack { get; set; }Stampa i colori in bianco e nero senza dithering.
SelectFldWithFirstOrLastChar { get; set; }Seleziona il campo quando viene selezionato il primo o l’ultimo carattere.
ShapeLayoutLikeWW8 { get; set; }Emula testo di Word 97 disposto attorno a oggetti mobili.
ShowBreaksInFrames { get; set; }Visualizza interruzioni di pagina/colonna presenti nei frame.
SpaceForUL { get; set; }Aggiungi spazio aggiuntivo sotto la linea di base per il testo dell’Asia orientale sottolineato.
SpacingInWholePoints { get; set; }Espandi/Condensa testo solo per punti interi.
SplitPgBreakAndParaMark { get; set; }Sposta sempre il segno di paragrafo sulla pagina dopo un’interruzione di pagina.
SubFontBySize { get; set; }Aumenta la priorità della dimensione del carattere durante la sostituzione del carattere.
SuppressBottomSpacing { get; set; }Ignora l’altezza esatta della riga per l’ultima riga nella pagina.
SuppressSpacingAtTopOfPage { get; set; }Ignora l’altezza minima della riga per la prima riga nella pagina.
SuppressSpBfAfterPgBrk { get; set; }Non utilizzare lo spazio prima della prima riga dopo un’interruzione di pagina.
SuppressTopSpacing { get; set; }Ignora l’altezza minima ed esatta della riga per la prima riga nella pagina.
SuppressTopSpacingWP { get; set; }Emula interlinea WordPerfect 5.x.
SwapBordersFacingPgs { get; set; }Scambia i bordi dei paragrafi sulle pagine con numeri dispari.
SwapInsideAndOutsideForMirrorIndentsAndRelativePositioning { get; set; }Specifica di scambiare l’interno e l’esterno per i rientri speculari e il posizionamento relativo.
TransparentMetafiles { get; set; }Specifica di non oscurare l’area dietro le immagini del metafile.
TruncateFontHeightsLikeWP6 { get; set; }Emula il calcolo dell’altezza del carattere di WordPerfect 6.x.
UICompat97To2003 { get; set; }True per disabilitare la funzionalità dell’interfaccia utente che non è compatibile con Word97-2003. Il valore predefinito èfalso .
UlTrailSpace { get; set; }Sottolinea tutti gli spazi finali.
UnderlineTabInNumList { get; set; }Sottolinea il carattere successivo la numerazione successiva.
UseAltKinsokuLineBreakRules { get; set; }Utilizza un insieme alternativo di regole di interruzione della linea dell’Asia orientale.
UseAnsiKerningPairs { get; set; }Utilizza coppie di crenatura ANSI dai caratteri.
UseFELayout { get; set; }Non ignorare il codice di layout degli script asiatici orientali/complessi.
UseNormalStyleForList { get; set; }Non applicare automaticamente lo stile paragrafo elenco al testo puntato/numerato.
UsePrinterMetrics { get; set; }Utilizza i parametri della stampante per visualizzare i documenti.
UseSingleBorderforContiguousCells { get; set; }Utilizza regole semplificate per i conflitti sui bordi della tabella.
UseWord2002TableStyleRules { get; set; }Emula le regole di stile tabella di Word 2002.
UseWord2010TableStyleRules { get; set; }Specifica di utilizzare le regole di stile tabella Word2010.
UseWord97LineBreakRules { get; set; }Emula Word 97 Interruzione linea dell’Asia orientale.
WPJustification { get; set; }Emula WordPerfect 6.x Giustificazione paragrafo.
WPSpaceWidth { get; set; }Specifica se impostare la larghezza di uno spazio come avviene in WordPerfect 5.x.
WrapTrailSpaces { get; set; }Spazi finali a capo automatico.

Metodi

NomeDescrizione
OptimizeFor(MsWordVersion)Consente di ottimizzare il contenuto del documento e il comportamento predefinito di Aspose.Words per una particolare versione di MS Word.

Esempi

Mostra come allineare verticalmente il contenuto del testo di una casella di testo.

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

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

// Imposta la proprietà "VerticalAnchor" su "TextBoxAnchor.Top" su
// allinea il testo in questa casella di testo con il lato superiore della forma.
// Imposta la proprietà "VerticalAnchor" su "TextBoxAnchor.Middle" su
// allinea il testo in questa casella di testo al centro della forma.
// Imposta la proprietà "VerticalAnchor" su "TextBoxAnchor.Bottom" su
// allinea il testo in questa casella di testo alla parte inferiore della forma.
shape.TextBox.VerticalAnchor = verticalAnchor;

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

// L'allineamento verticale del testo all'interno delle caselle di testo è disponibile da Microsoft Word 2007 in poi.
doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2007);
doc.Save(ArtifactsDir + "Shape.VerticalAnchor.docx");

Mostra come impostare una specifica di conformità OOXML a cui aderire un documento salvato.

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

// Se configuriamo le opzioni di compatibilità per conformarsi a Microsoft Word 2003,
// l'inserimento di un'immagine ne definirà la forma utilizzando 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);

// Lo standard OOXML "ISO/IEC 29500:2008" non supporta le forme VML.
// Se impostiamo la proprietà "Compliance" dell'oggetto SaveOptions su "OoxmlCompliance.Iso29500_2008_Strict",
 // qualsiasi documento che salviamo mentre passiamo questo oggetto dovrà seguire quello standard.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions
{
    Compliance = OoxmlCompliance.Iso29500_2008_Strict,
    SaveFormat = SaveFormat.Docx
};

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

// Il nostro documento salvato definisce la forma utilizzando DML per aderire allo standard OOXML "ISO/IEC 29500:2008".
doc = new Document(ArtifactsDir + "OoxmlSaveOptions.Iso29500Strict.docx");

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

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

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

    // Questo oggetto contiene un elenco completo di flag univoci per ciascun 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 versione specifica 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 nell'oggetto delle opzioni di compatibilità di un documento in base allo stato, quindi stampa ciascun 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