Mail Merge Modèle à partir de la syntaxe Mustache

Aspose.Words vous permet de créer des modèles avec la syntaxe mustache en plus des modèles familiers. Un Mustache est une variante alternative de la syntaxe de modèle qui se compose de noms de balises entourés et soutenus par un objet de modèle qui contient les données du modèle.

La syntaxe Mustache est la seule option à utiliser avec les modèles qui ne contiennent pas de champs, tels que les modèles HTML et TXT. Avec les modèles Word, vous avez deux options pour utiliser les champs ou la syntaxe Mustache.

La syntaxe Mustache prend en charge la balise foreach, qui est une alternative à l’utilisation de Mail Merge avec des régions. L’avantage est donc que vous pouvez utiliser la syntaxe mustache si, pour une raison quelconque, vous ne pouvez pas ou simplement vous ne souhaitez pas utiliser les champs de fusion et les régions de fusion.

Vous pouvez également combiner des champs Mail Merge avec des champs supplémentaires à l’aide de la balise foreach, comme illustré dans l’image ci-dessous.

mustache_syntax_aspose_words_java

Créer un modèle Mustache

Le premier point important à clarifier est que Mustache n’est pas un moteur de création de modèles. Mustache est une autre variante de syntaxe disponible pour tout modèle dans un format de chargement supporté par Aspose.Words. Par conséquent, vous pouvez créer un tel modèle à la fois par programmation et via une interface, il vous suffit d’inclure une certaine syntaxe et de vous conformer à la spécification Mustache.

Supposons que vous deviez envoyer le même e-mail à 50 destinataires pour personnaliser le message d’accueil avec leurs prénoms correspondants. Vous pouvez remplacer le prénom du destinataire par un espace réservé comme suit:

Dear {{FirstName}}

I hereby…

La question ici: comment créer 50 emails à partir d’un seul modèle Mustache? Pour répondre à cela, vous devez effectuer un Mail Merge avec des régions pour remplir les accolades pour les espaces réservés dans le modèle avec des données réelles et générer un document de sortie.

mustache_template_aspose_words_java

Travailler avec la syntaxe Mustache

Mustache est représenté comme un ordre sans logique car il manque d’instructions de flux de contrôle spécifiques telles que for boucles et if et else conditions. Mais vous pouvez utiliser les balises de section listes de traitement et lambdas pour réaliser une évaluation conditionnelle et une boucle. Donc, pour inclure la syntaxe Mustache dans l’opération Mail Merge, vous devrez utiliser la propriété UseNonMergeFields et définir sa valeur sur True.

L’exemple de code suivant montre comment remplacer les balises Mustache par des données spécifiques:

Vous pouvez remarquer la différence entre le document avant d’exécuter le Mail Merge avec des régions et d’appliquer la propriété UseNonMergeFields:

mustache_syntax_aspose_words_java

Et après avoir appliqué le Mail Merge avec les régions:

mustache_syntax_result_aspose_words_java

Utilisez les champs IF pour rendre un Mail Merge intelligent

Aspose.Words vous permet d’utiliser des champs Mail Merge et des balises Mustache avec l’instruction IF. Les champs IF peuvent être utilisés dans n’importe quel document Mail Merge pour supprimer les espaces et virgules indésirables si un champ est vide.

La formule du champ IF est indiquée ci-dessous:

{ IF [Condition] [Display Result 1] [Display Result 2] }

Ici, la Condition peut être soit un champ de fusion, soit une balise Mustache.

Par exemple, vous pouvez utiliser les champs IF si vous devez insérer “son”, “elle”, “il” ou “elle” selon le sexe comme suit:

{ IF { MERGEFIELD Gender } = “MALE” “texte vrai” " texte faux"}

{ IF “{{ GENDER }}” = “MALE” “texte vrai” " texte faux"}

L’exemple de code suivant montre comment effectuer une opération Mail Merge avec des balises Mustache et des champs IF:

Vous pouvez remarquer la différence entre le document avant d’appliquer la propriété UseNonMergeFields:

mustache_if_field_aspose_words_java

Et après avoir appliqué la propriété UseNonMergeFields:

mustache_if_field_2_aspose_words_java