FieldPrivate

FieldPrivate class

Implementiert das PRIVATE-Feld.

Um mehr zu erfahren, besuchen Sie dieArbeiten mit Feldern Dokumentationsartikel.

public class FieldPrivate : Field

Konstrukteure

NameBeschreibung
FieldPrivate()Default_Constructor

Eigenschaften

NameBeschreibung
DisplayResult { get; }Ruft den Text ab, der das angezeigte Feldergebnis darstellt.
End { get; }Ruft den Knoten ab, der das Feldende darstellt.
Format { get; }Ruft a abFieldFormat Objekt, das typisierten Zugriff auf die Formatierung des Felds bietet.
IsDirty { get; set; }Ruft ab oder legt fest, ob das aktuelle Ergebnis des Felds aufgrund anderer am Dokument vorgenommener Änderungen nicht mehr korrekt (veraltet) ist.
IsLocked { get; set; }Ruft ab oder legt fest, ob das Feld gesperrt ist (sollte sein Ergebnis nicht neu berechnen).
LocaleId { get; set; }Ruft die LCID des Felds ab oder legt sie fest.
Result { get; set; }Ruft Text ab, der zwischen dem Feldtrennzeichen und dem Feldende liegt, oder legt diesen fest.
Separator { get; }Ruft den Knoten ab, der das Feldtrennzeichen darstellt. Kann seinNull .
Start { get; }Ruft den Knoten ab, der den Anfang des Felds darstellt.
virtual Type { get; }Ruft den Microsoft Word-Feldtyp ab.

Methoden

NameBeschreibung
GetFieldCode()Gibt Text zwischen Feldanfang und Feldtrennzeichen zurück (oder Feldende, wenn kein Trennzeichen vorhanden ist). Sowohl der Feldcode als auch das Feldergebnis der untergeordneten Felder sind enthalten.
GetFieldCode(bool)Gibt Text zwischen Feldanfang und Feldtrennzeichen zurück (oder Feldende, wenn kein Trennzeichen vorhanden ist).
Remove()Entfernt das Feld aus dem Dokument. Gibt einen Knoten direkt nach dem Feld zurück. Wenn das Ende des Felds das letzte child seines übergeordneten Knotens ist, wird dessen übergeordneter Absatz zurückgegeben. Wenn das Feld bereits entfernt wurde, wird zurückgegebenNull .
Unlink()Führt das Feld unlink aus.
Update()Führt die Feldaktualisierung durch. Wird ausgelöst, wenn das Feld bereits aktualisiert wird.
Update(bool)Führt eine Feldaktualisierung durch. Wird ausgelöst, wenn das Feld bereits aktualisiert wird.

Bemerkungen

Bietet einen privaten Speicherbereich. Dieses Feld wird zum Speichern von Daten für Dokumente verwendet, die aus anderen Dateiformaten konvertiert wurden.

Beispiele

Zeigt, wie PRIVATE-Felder verarbeitet werden.

public void FieldPrivate()
{
    // Öffnen Sie ein Corel WordPerfect-Dokument, das wir in das .docx-Format konvertiert haben.
    Document doc = new Document(MyDir + "Field sample - PRIVATE.docx");

    // WordPerfect 5.x/6.x-Dokumente wie das von uns geladene können PRIVATE-Felder enthalten.
    // Microsoft Word behält PRIVATE-Felder während Lade-/Speichervorgängen bei,
    // bietet aber keine Funktionalität für sie.
    FieldPrivate field = (FieldPrivate)doc.Range.Fields[0];

    Assert.AreEqual(" PRIVATE \"My value\" ", field.GetFieldCode());
    Assert.AreEqual(FieldType.FieldPrivate, field.Type);

    // Wir können auch PRIVATE-Felder mit einem Document Builder einfügen.
    DocumentBuilder builder = new DocumentBuilder(doc);
    builder.InsertField(FieldType.FieldPrivate, true);

    // Diese Felder sind keine praktikable Möglichkeit, vertrauliche Informationen zu schützen.
    // Sofern die Abwärtskompatibilität mit älteren Versionen von WordPerfect nicht unbedingt erforderlich ist,
    // Wir können diese Felder sicher entfernen. Wir können dies mithilfe einer DocumentVisiitor-Implementierung tun.
    Assert.AreEqual(2, doc.Range.Fields.Count);

    FieldPrivateRemover remover = new FieldPrivateRemover();
    doc.Accept(remover);

    Assert.AreEqual(2, remover.GetFieldsRemovedCount());
    Assert.AreEqual(0, doc.Range.Fields.Count);
}

/// <summary>
/// Entfernt alle gefundenen PRIVATE-Felder.
/// </summary>
public class FieldPrivateRemover : DocumentVisitor
{
    public FieldPrivateRemover()
    {
        mFieldsRemovedCount = 0;
    }

    public int GetFieldsRemovedCount()
    {
        return mFieldsRemovedCount;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein FieldEnd-Knoten gefunden wird.
    /// Wenn der Knoten zu einem PRIVATE-Feld gehört, wird das gesamte Feld entfernt.
    /// </summary>
    public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
    {
        if (fieldEnd.FieldType == FieldType.FieldPrivate)
        {
            fieldEnd.GetField().Remove();
            mFieldsRemovedCount++;
        }

        return VisitorAction.Continue;
    }

    private int mFieldsRemovedCount;
}

Siehe auch