FieldPrivate

FieldPrivate class

Implémente le champ PRIVÉ.

public class FieldPrivate : Field

Constructeurs

Nom La description
FieldPrivate() Default_Constructor

Propriétés

Nom La description
DisplayResult { get; } Obtient le texte qui représente le résultat du champ affiché.
End { get; } Obtient le nœud qui représente la fin du champ.
Format { get; } Obtient unFieldFormat objet qui fournit un accès typé au formatage du champ.
IsDirty { get; set; } Obtient ou définit si le résultat actuel du champ n’est plus correct (périmé) en raison d’autres modifications apportées au document.
IsLocked { get; set; } Obtient ou définit si le champ est verrouillé (ne doit pas recalculer son résultat).
LocaleId { get; set; } Obtient ou définit le LCID du champ.
Result { get; set; } Obtient ou définit le texte qui se trouve entre le séparateur de champ et la fin du champ.
Separator { get; } Obtient le nœud qui représente le séparateur de champs. Peut être null.
Start { get; } Obtient le nœud qui représente le début du champ.
virtual Type { get; } Obtient le type de champ Microsoft Word.

Méthodes

Nom La description
GetFieldCode() Renvoie le texte entre le début du champ et le séparateur de champ (ou la fin du champ s’il n’y a pas de séparateur). Le code de champ et le résultat du champ des champs enfants sont inclus.
GetFieldCode(bool) Renvoie le texte entre le début du champ et le séparateur de champ (ou la fin du champ s’il n’y a pas de séparateur).
Remove() Supprime le champ du document. Renvoie un nœud juste après le champ. Si la fin du champ est le dernier enfant de son nœud parent, renvoie son paragraphe parent. Si le champ est déjà supprimé, renvoie nul .
Unlink() Effectue la dissociation du champ.
Update() Effectue la mise à jour du champ. Lance si le champ est déjà mis à jour.
Update(bool) Effectue une mise à jour du champ. Lance si le champ est déjà mis à jour.

Remarques

Fournit une zone de stockage privée. Ce champ est utilisé pour stocker les données des documents convertis à partir d’autres formats de fichiers.

Exemples

Montre comment traiter les champs PRIVÉS.

{
    // Ouvre un document Corel WordPerfect que nous avons converti au format .docx.
    Document doc = new Document(MyDir + "Field sample - PRIVATE.docx");

    // Les documents WordPerfect 5.x/6.x comme celui que nous avons chargé peuvent contenir des champs PRIVATE.
    // Microsoft Word préserve les champs PRIVÉS lors des opérations de chargement/sauvegarde,
    // mais ne leur fournit aucune fonctionnalité.
    FieldPrivate field = (FieldPrivate)doc.Range.Fields[0];

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

    // Nous pouvons également insérer des champs PRIVÉS à l'aide d'un générateur de documents.
    DocumentBuilder builder = new DocumentBuilder(doc);
    builder.InsertField(FieldType.FieldPrivate, true);

    // Ces champs ne constituent pas un moyen viable de protéger les informations sensibles.
    // Sauf si la rétrocompatibilité avec les anciennes versions de WordPerfect est essentielle,
    // nous pouvons supprimer ces champs en toute sécurité. Nous pouvons le faire en utilisant une implémentation DocumentVisiitor.
    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>
/// Supprime tous les champs PRIVATE rencontrés.
/// </summary>
public class FieldPrivateRemover : DocumentVisitor
{
    public FieldPrivateRemover()
    {
        mFieldsRemovedCount = 0;
    }

    public int GetFieldsRemovedCount()
    {
        return mFieldsRemovedCount;
    }

    /// <summary>
    /// Appelé lorsqu'un nœud FieldEnd est rencontré dans le document.
    /// Si le nœud appartient à un champ PRIVÉ, tout le champ est supprimé.
    /// </summary>
    public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
    {
        if (fieldEnd.FieldType == FieldType.FieldPrivate)
        {
            fieldEnd.GetField().Remove();
            mFieldsRemovedCount++;
        }

        return VisitorAction.Continue;
    }

    private int mFieldsRemovedCount;
}

Voir également