PreserveUnusedTags

MailMerge.PreserveUnusedTags property

Obtient ou définit une valeur indiquant si les balises “moustache” inutilisées doivent être conservées.

public bool PreserveUnusedTags { get; set; }

Remarques

La valeur par défaut est faux .

Exemples

Montre comment conserver l’apparence d’autres balises de publipostage qui ne sont pas utilisées lors d’un publipostage.

public void PreserveUnusedTags(bool preserveUnusedTags)
{
    Document doc = CreateSourceDocWithAlternativeMergeFields();
    DataTable dataTable = CreateSourceTablePreserveUnusedTags();

    // Par défaut, un publipostage place les données de chaque ligne d'une table dans des MERGEFIELD, qui nomment les colonnes de cette table. 
    // Notre document n'a pas de tels champs, mais il a des balises de texte en clair entourées d'accolades.
    // Si nous définissons le drapeau "PreserveUnusedTags" sur "true", nous pourrions traiter ces balises comme des MERGEFIELDs
    // pour permettre à notre publipostage d'insérer des données de la source de données à ces balises.
    // Si nous définissons le drapeau "PreserveUnusedTags" sur "false",
    // le publipostage convertira ces balises en MERGEFIELD et les laissera vides.
    doc.MailMerge.PreserveUnusedTags = preserveUnusedTags;
    doc.MailMerge.Execute(dataTable);

    doc.Save(ArtifactsDir + "MailMerge.PreserveUnusedTags.docx");

    // Notre document a une balise pour une colonne nommée "Column2", qui n'existe pas dans la table.
    // Si nous définissons le drapeau "PreserveUnusedTags" sur "false", then the mail merge will convert this tag into a MERGEFIELD.
    Assert.AreEqual(doc.GetText().Contains("{{ Column2 }}"), preserveUnusedTags);

    if (preserveUnusedTags)
        Assert.AreEqual(0, doc.Range.Fields.Count(f => f.Type == FieldType.FieldMergeField));
    else
        Assert.AreEqual(1, doc.Range.Fields.Count(f => f.Type == FieldType.FieldMergeField));
}

/// <summary>
/// Créez un document et ajoutez deux balises de texte en clair pouvant agir comme MERGEFIELD lors d'un publipostage.
/// </summary>
private static Document CreateSourceDocWithAlternativeMergeFields()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.Writeln("{{ Column1 }}");
    builder.Writeln("{{ Column2 }}");

    // Nos balises seront enregistrées en tant que destinations pour les données de publipostage uniquement si nous définissons ceci sur true.
    doc.MailMerge.UseNonMergeFields = true;

    return doc;
}

/// <summary>
/// Créez un tableau de données simple avec une colonne.
/// </summary>
private static DataTable CreateSourceTablePreserveUnusedTags()
{
    DataTable dataTable = new DataTable("MyTable");
    dataTable.Columns.Add("Column1");
    dataTable.Rows.Add(new object[] { "Value1" });

    return dataTable;
}

Voir également