Comment effectuer un publipostage en utilisant un modèle Word avec des lignes de la source de données agissant comme éléments de ligne.

Cet exemple utilise un modèle Word. Si vous utilisez un modèle HTML, d'autres options sont disponibles ici.

Des lignes adjacentes dans la feuille de calcul avec la même adresse e-mail sont utilisées pour produire une seule facture PDF avec des éléments de ligne. Cet exemple utilise la méthode « lignes vers e-mail » « Une ou plusieurs lignes génèrent un e-mail ».

Étape 1. Créer la source de données

Il peut s'agir d'un fichier CSV ou d'une feuille de calcul Excel. Elle doit avoir des champs de fusion comme en-têtes de colonnes. Chaque ligne doit avoir une adresse e-mail. Créez des lignes consécutives avec la même adresse e-mail pour chaque élément de ligne que vous souhaitez dans le PDF.

Dans cet exemple, 4 e-mails seront envoyés, chacun avec une seule pièce jointe.

  • Le premier (à M. Fred) a 5 éléments de ligne.
  • Le deuxième (à Zac) a 4 éléments de ligne.
  • Le troisième (à Mme Flinstone) a 2 éléments de ligne.
  • Le quatrième (à Jack) a 1 élément de ligne.

Étape 2. Créer le modèle Word.

pdfMachine merge s'installe avec des profils prêts à l'emploi pour vous aider à démarrer.
Cet exemple est « Test Profile - Word invoice template using repeat_row filter »

Créez votre document en utilisant des champs de fusion comme espaces réservés pour les données. Entourez tous les champs de fusion avec {{ }}. Les noms des champs de fusion doivent correspondre exactement aux noms de colonnes dans la source de données. Les champs de fusion peuvent être formatés à l'aide de filtres.

Étape 3. Créer les champs de fusion pour les éléments de ligne.

Les éléments de ligne sont configurés en utilisant soit le filtre « repeat_row » ou « repeat_par ». Le filtre « repeat_row » est utilisé pour afficher des lignes répétées d'un tableau, « repeat_par » est utilisé pour afficher des paragraphes répétés.

Pour utiliser le filtre « repeat_row », créez un tableau pour les données répétées. Insérez des en-têtes si souhaité. Vous n'avez besoin que d'une seule ligne de données dans le tableau. pdfMachine merge créera une ligne pour chaque ligne correspondante dans la source de données lors de l'opération de fusion.

Dans chaque cellule de cette ligne, placez les champs de fusion dans {{}} avec tous les filtres de formatage. Ces champs de fusion doivent avoir le préfixe « row. » ajouté au champ de fusion pour indiquer que le champ de fusion doit changer avec chaque ligne de la source de données. Par exemple, un champ de fusion « description » doit être référencé comme « row.description » dans un bloc répété.

Ajoutez le filtre « repeat_row » au premier champ de fusion dans la ligne/paragraphe que vous souhaitez répéter.

Pour afficher un champ calculé (ex. : total), vous devez avoir une colonne dans votre source de données représentant ce champ de fusion. Les calculs ne peuvent être effectués que dans les modèles HTML en utilisant JavaScript.

Remarque : si vous avez configuré votre modèle dans une version plus ancienne (avant la disponibilité des balises repeat), la page d'aide correspondante est ici

Étape 4. Configurer le profil.

Créez un nouveau profil depuis la fenêtre des profils. Si vous n'êtes pas familier avec les profils, consultez la configuration d'un profil simple ici.

Attachez la source de données que vous avez créée à l'étape 1.

Définissez la « méthode lignes vers e-mails » sur « Une ou plusieurs lignes génèrent un e-mail ».


Configurez les paramètres de l'e-mail et du corps. Si vous le souhaitez, vous pouvez utiliser les filtres « repeat_par » ou « repeat_row » dans le corps de l'e-mail pour afficher des éléments de ligne.

Attachez le modèle Word que vous avez créé à l'étape 2 comme modèle généré dynamiquement.

Étape 5. Commencer à envoyer des e-mails

Effectuez d'abord un test en vous envoyant quelques e-mails. Lorsque vous êtes satisfait des résultats, commencez à envoyer des e-mails.



Les e-mails et les pièces jointes sont tous personnalisés avec les données de la source de données.