Champs de fusion pdfMachine
Un champ de fusion est un espace réservé qui sera remplacé par le contenu de la cellule correspondante de la source de données lors de la fusion. Un champ de fusion est indiqué par un ensemble d'accolades doubles contenant le nom de colonne de la source de données. Il peut également contenir des instructions de formatage (voir ici).
{{age}}
Les noms de colonnes qui contiennent des espaces doivent avoir les espaces remplacés par des traits de soulignement dans les champs de fusion :
{{first_name}}
Où utiliser les champs de fusion.
Les champs de fusion dans pdfMachine merge peuvent être utilisés et formatés pour la plupart des sorties de pdfMachine merge.
- Contenu des PDF générés dynamiquement à partir de modèles Word, Excel, PowerPoint ou HTML
- Destinataires de l'e-mail (Ã , cc et bcc)
- Objet de l'e-mail
- Corps de l'e-mail
- Nom de la pièce jointe
- Tampons
- Mots de passe
- Chemin/nom des pièces jointes statiques
- Contenu du papier à en-tête HTML
- Conditions pour l'ajout d'un PDF en pièce jointe
Vous ne pouvez pas utiliser un champ de fusion pour spécifier le chemin vers la source de données ou vers des modèles Word, Excel, PowerPoint ou HTML. Si vous souhaitez utiliser un modèle différent en fonction du contenu d'un champ de fusion, consultez la section sur les pièces jointes conditionnelles.
Règles
- Le formatage est spécifié dans le profil ou le modèle pdfMachine merge. Le formatage n'est pas pris en charge depuis la source de données Excel ou CSV.
- Si vous utilisez pdfMachine merge pour convertir un document de publipostage Word, les règles de formatage Word pour le publipostage ne sont pas conservées. Une fois le modèle converti, tous les champs de publipostage Word sont supprimés du modèle. Tout formatage doit être appliqué à l'aide des filtres pdfMachine merge.
- Le texte qui remplace les champs de fusion dans un modèle conserve le formatage du texte du champ de fusion dans le modèle (ex. : gras, police). Le formatage de droite à gauche doit être appliqué dans le modèle Word aux champs de fusion qui contiendront du texte de droite à gauche (ex. : texte arabe). Le formatage doit être appliqué à l'ensemble du champ de fusion, y compris les accolades doubles.
- Des filtres peuvent être utilisés avec des champs de fusion pour formater le texte final. Pour utiliser un filtre, placez le symbole pipe (|) après le nom du champ de fusion, puis le nom du filtre. Par exemple, pour appliquer le filtre de date au champ de fusion birth_date, utilisez : {{ birth_date | date:"d MMM yyyy"}}
- pdfMachine merge utilise les filtres et balises Liquid. Les filtres et balises standard sont pris en charge comme indiqué dans Liquid For Designers et DotLiquid For Designers. Liquid vous permet d'appliquer un formatage, d'effectuer des boucles, des conditions, etc., en fonction des valeurs de votre source de données. Les filtres couramment utilisés sont documentés sur cette page. Les filtres supplémentaires spécifiques à pdfMachine merge sont documentés sur cette page. Les conditions et boucles sont documentées ici
Filtres Liquid
pdfMachine merge prend en charge le langage de modélisation Liquid complet dans les modèles HTML et dans le corps de l'e-mail, et dispose également d'une prise en charge partielle de Liquid (filtres uniquement) dans les modèles de documents Microsoft Word/Excel/PowerPoint. pdfMachine merge possède également des filtres et des balises personnalisés (ne faisant pas partie de la spécification Liquid) pour les dates, les nombres, les devises, l'encodage des composants URI, les images, les codes-barres, les lignes répétées dans Microsoft Word et la gestion des nouvelles lignes dans Microsoft Word. Ces éléments sont décrits dans les exemples ci-dessous
Remarque : pour utiliser les balises Liquid dans le corps de l'e-mail, l'éditeur de corps d'e-mail doit toujours être en mode « Source ». Le mode « wysiwyg » ne préservera pas les balises Liquid.
Les filtres Liquid sont de simples méthodes qui modifient la sortie de nombres, de chaînes, de variables et d'objets. Ils sont placés dans une balise de sortie {{ }} et sont indiqués par un caractère pipe |. Par exemple :
Le filtre capitalize provoquera la mise en majuscule du contenu de la cellule « name » de la source de données.
Entrée :
{{ name | capitalize }}
Sortie :
John Smith
Les filtres couramment utilisés sont documentés sur cette page. Les filtres Liquid sont disponibles dans la documentation Liquid
Comment formater les champs de fusion
- Texte
- Dates
- Devise
- Nombres
- Lignes répétées
- Gestion spéciale des champs de fusion vides
- Gestion de plusieurs lignes dans une source de données
- Images
- Codes-barres
- Numéros de page dans un modèle HTML
- Encodage d'un composant URI
- Utilisation de plusieurs filtres
- Boucles et conditions
- Création d'éléments de ligne à partir de lignes en utilisant un modèle Word
- Utilisation d'instructions conditionnelles dans un modèle HTML
Des exemples peuvent également être trouvés dans le profil « Test Profile - Word Template with formatting examples » qui s'installe avec pdfMachine merge.
Formatage du texte
Les champs de publipostage reprendront le formatage qui leur est appliqué dans le modèle.
Par exemple, si vous souhaitez qu'un champ de publipostage apparaisse en italique, vous pouvez mettre
l'intégralité de l'instruction du champ de publipostage (y compris les accolades environnantes) en italique.
{{AccountNo}} apparaîtra comme A00001
Le filtre Liquid « capitalize » peut être utilisé pour s'assurer que les mots (ex. : noms) sont
mis en majuscule en sortie, quelle que soit la façon dont ils apparaissent dans la source de données
{{ name | capitalize }} apparaîtra comme John même si la source de données contient john.
Des exemples de champs de fusion textuels formatés peuvent également être trouvés dans le profil « Test Profile - Word Template with formatting examples » qui s'installe avec pdfMachine merge.
Comment utiliser les dates dans les champs de fusion
Des exemples de dates formatées peuvent également être trouvés dans le profil « Test Profile - Word Template with formatting examples » qui s'installe avec pdfMachine merge.
Le filtre Liquid « date » peut être utilisé pour formater les dates dans les champs pdfMachine merge.
Formatage de la date et de l'heure
Les chaînes de format .NET pour le formatage des dates sont utilisées par pdfMachine merge ; les détails peuvent être trouvés
ici.
Les formats de date couramment utilisés sont :
| entrée | sortie |
|---|---|
| {{ invoice_date | date:"d MMM yyyy"}} | 1 Jun 2015 |
| {{ invoice_date | date: "dd MMMM yyyy"}} | 01 June 2015 |
| {{ invoice_date | date: "MM/dd/yy"}} | 06/01/15 |
| Le séparateur est indépendant de la culture, échappé par le caractère guillemet simple : {{ invoice_date | date: "MM'-'dd'-'yy"}} | 06-01-15 |
| {{ start_time | date: "h:mmtt"}} | 9:00AM |
Date et heure actuelles
En plus des filtres Liquid pour les dates, pdfMachine merge dispose également d'un champ de fusion spécial appelé
datetimenow.
Un champ de fusion {{ datetimenow }} ne nécessite pas de colonne dans la source de données ;
il insérera automatiquement la date et l'heure actuelles.
Ajouter ou soustraire des jours
Un filtre dateplusdays est disponible. Il affichera un nombre de jours avant ou après la date spécifiée.
Par exemple {{ datetimenow | dateplusdays : 30 }} prend l'heure actuelle, ajoute 30 jours et affiche la date.
| Entrée | Sortie |
|---|---|
|
{{ datetimenow | date : "d MMM yyyy"}} |
8 Nov 2018 |
|
{{invoice_date | dateplusdays : 30| date : "d MMM yyyy"}} |
8 Nov 2018 |
Plusieurs filtres sur un champ de fusion
Vous pouvez appliquer plusieurs filtres à un champ de fusion en utilisant le symbole pipe |.
Par exemple, si vous souhaitez obtenir la date et l'heure actuelles, puis les formater, vous pouvez utiliser deux filtres. La date et l'heure actuelles sont d'abord filtrées pour ajouter 30 jours, puis filtrées pour formater la sortie.
{{ datetimenow | dateplusdays : 30| date : "d MMM yyyy"}}
23 Jun 2015
Comment formater les champs de fusion de devise
Des exemples de champs de devise formatés peuvent également être trouvés dans le profil « Test Profile - Word Template with formatting examples » qui s'installe avec pdfMachine merge.
Pour formater un champ de fusion numérique appelé « amount » en devise, vous pouvez utiliser le filtre « money » :
{{ amount | money }}
$25.00
Ou vous pouvez utiliser le filtre « money_no_cents » :
{{ amount | money_no_cents }}
$25
Ou vous pouvez formater le montant selon une devise particulière, en choisissant parmi une culture répertoriée ici —
le chiffre après la lettre C indique le nombre de décimales qui seront affichées :
{{ amt | number_culture : "C2","ja-JP" }}
Â¥25.00
{{ amt | number_culture : "C0","en-US" }}
$25
Comment formater un nombre en toutes lettres
{{ amount | money_as_words }}
ten dollars and twenty cents
Comment formater les champs de fusion numériques
Pour formater un champ de fusion numérique, vous pouvez utiliser le filtre « number » qui formate un nombre selon le formatage numérique de csharp, à la fois les formats standard et les formats personnalisés. Vous pouvez également utiliser le filtre « number_culture » pour formater un nombre selon une culture répertoriée ici.
Pour formater différemment les nombres positifs, négatifs et zéro, vous pouvez utiliser le formatage conditionnel. Vous pouvez spécifier jusqu'à trois sections différentes de votre chaîne de format en même temps, en les séparant par des points-virgules. Si vous spécifiez deux sections de chaîne de format, la première est utilisée pour les valeurs positives et zéro tandis que la seconde est utilisée pour les valeurs négatives ; si vous utilisez trois sections, la première est utilisée pour les valeurs positives, la seconde pour les valeurs négatives, et la troisième pour les valeurs zéro.
Les formats numériques couramment utilisés sont :
| entrée | sortie |
|---|---|
| {{ num | number :"N2"}} | 1,152.00 |
| {{ num | number :"N0"}} | 1,152 |
| {{ num | number_culture : "C0", "es-ES"}} | 1 152,00 |
| {{ num | | number_culture : "N0", "es-MX"}} | 1 152 |
| {{ num | number :"P0"}} | 52% |
| {{ num | number :"P2"}} | 52.00% |
| {{ num | number:"#0.00;(#0.00)"}} | 52.00 pour les valeurs positives, (52.00) pour les valeurs négatives |
Des exemples de champs numériques formatés peuvent également être trouvés dans le profil « Test Profile - Word Template with formatting examples » qui s'installe avec pdfMachine merge.
Gestion des champs de fusion vides dans un modèle Microsoft Word
Préfixe de texte
Utilisez le filtre « prepend_if » pour insérer du texte avant le champ de fusion lorsque celui-ci n'est pas vide.
| Entrée | Sorties possibles |
|---|---|
|
{{item1}}{{item2 | prepend_if: ", "}}{{item3 | prepend_if: ", "}} |
oranges |
Éviter les lignes vides
Les modèles Word affichent tous les caractères qui ne sont pas dans un champ de fusion « tel quel ». Parfois, cela génère des lignes vides supplémentaires. Si vous avez un champ de fusion suivi d'un caractère de nouvelle ligne ou de paragraphe, il est possible que vous souhaitiez que cette nouvelle ligne n'apparaisse que lorsque le champ de fusion contient quelque chose.
Le bloc d'adresse en est un bon exemple. Le contenu des lignes d'un bloc d'adresse est parfois vide, par exemple pour une adresse de appartement ou un nom d'immeuble. Il est préférable de ne pas avoir de ligne vide.
Dans l'exemple suivant, les champs de fusion du bloc d'adresse doivent chacun occuper une ligne. Certains champs de fusion seront vides, par exemple address_1. Une nouvelle ligne n'est nécessaire que lorsque le champ de fusion est présent.
| Adresse complète | Adresses avec un « address_1 » vide | |
|---|---|---|
|
Joe Smith |
Joe Smith |
Joe Smith |
Pour éviter la ligne vide, utilisez le filtre WordNewLine à la place des sauts de ligne Word.
| Entrée | Sortie |
|---|---|
|
{{Salutation}} {{first name}} {{last_name}} |
Mr Joe Smith |
Des exemples d'utilisation du filtre WordNewLine peuvent également être trouvés dans le profil « Test Profile - Word Template with formatting examples » qui s'installe avec pdfMachine merge.
Comment insérer des numéros de page dans un modèle HTML
$page et $maxpage sont des variables spéciales utilisées avec les modèles HTML. Elles sont converties en « page courante » et en « nombre maximum de pages » dans le document PDF. Par exemple, vous pouvez créer un fichier de papier à en-tête HTML avec le texte « $page sur $maxpage ».
| Entrée | Sortie |
|---|---|
|
Page $page of $maxpage |
Page 2 of 5 |
Comment encoder des caractères spéciaux en tant que composant URI
Si vous utilisez un champ de fusion dans une URL, vous devrez peut-être utiliser le filtre « uri_encode » pour encoder les composants saisis par l'utilisateur afin qu'ils ne soient pas mal interprétés par le serveur.
Par exemple, si vous utilisez une URL telle que https://broadgun.com/test?names={{names|uri_encode}} avec un champ de fusion « names » égal à « Jack & Jill », vous aurez besoin du composant uri_encode pour forcer l'encodage du champ de fusion et qu'il soit correctement interprété par le serveur.
Comment insérer dynamiquement une image dans un modèle Word
Le filtre insert_image vous permet d'insérer une image spécifique — définie par un champ de fusion — dans un modèle Word. Cela donnera une image personnalisée dans chaque pièce jointe. Vous devez spécifier la largeur de l'image en points. La hauteur sera mise à l'échelle de manière appropriée. Ce filtre ne doit être utilisé que dans les modèles Word.
L'image peut provenir d'un fichier ou d'une URL. Vous pouvez utiliser le chemin entier dans le champ de fusion ou seulement une partie du chemin avec le filtre prepend.
Vous pouvez utiliser ce filtre pour insérer des codes-barres générés depuis votre générateur de codes-barres préféré ; cependant, si vous êtes satisfait d'utiliser le serveur de codes-barres Broadgun Software, le filtre barcode est plus simple.
Un court tutoriel vidéo est disponible. Notez que la source de l'image est un chemin dans la source de données. Il aurait pu tout aussi bien s'agir d'une portion du chemin dans la source de données ou d'une URL. Regarder ici.
Entrée : {{imagePath|insert_image: 144}}
Sortie :
Entrée : {{imageFile | prepend: "c:\images\" |insert_image: 144}}
Sortie :
Entrée : {{imagepath | insert_image: 144, imagelink}}
Sortie :
Entrée : {{ webaddress | uri_encode | prepend:
"https://broadgun.com/barcode/?bcid=qrcode&text=" | insert_image: 50 }}
Sortie :
Comment insérer dynamiquement un code-barres dans un modèle Word
Le filtre barcode vous permet d'insérer un code-barres personnalisé — défini par un champ de fusion — dans un modèle Word. Cela donnera un code-barres personnalisé dans chaque pièce jointe. Vous devez d'abord spécifier le type de code-barres puis la largeur de l'image en points. Vous pouvez éventuellement spécifier la hauteur de l'image en points. Si elle n'est pas spécifiée, la hauteur sera égale à la largeur par défaut.
Si le contenu du champ de fusion est une URL, cette URL sera un hyperlien sur l'image dans le PDF. Vous pouvez également spécifier (facultativement) une URL comme paramètre supplémentaire. Dans ce cas, vous devez d'abord renseigner les paramètres de largeur et de hauteur. Lorsque vous spécifiez une URL comme paramètre, votre code-barres utilisera le contenu du champ de fusion comme texte lors du scan du code-barres, mais lorsque le code-barres est cliqué, la navigation ira vers l'URL spécifiée. Par exemple, vous pouvez avoir un code-barres avec le numéro de série comme texte et l'URL du magasin comme hyperlien.
Le contenu du champ de fusion sera le texte utilisé pour générer le code-barres. Ce filtre ne doit être utilisé que dans les modèles Word.
Le filtre barcode génère le code-barres depuis le serveur de codes-barres Broadgun Software. Vous pouvez utiliser le filtre insert_image pour générer des codes-barres depuis un autre serveur de codes-barres. Le filtre barcode utilise le filtre insert_image avec l'URL du serveur de codes-barres Broadgun Software (comme indiqué dans l'exemple ci-dessous).
Un court tutoriel vidéo est disponible. Regarder ici.
Entrée : {{webaddress |barcode: "qrcode", 50 }}
Sortie :
Entrée : {{item_number |barcode: "code128", 200, 50 }}
Sortie :
Entrée : {{item_number |barcode: "ean13", 106, 79, webaddress }}
Sortie :
Comment envoyer des PDF par e-mail pour la capture de signature en utilisant pdfMachine sign here et le filtre « sign_here ».
-
Placez le filtre sign_here dans un document modèle. Ex. : {{ name | sign_here }}
Cela donnera lieu à l'insertion d'un champ de capture de signature à cette position dans le document, « name » étant le champ de fusion contenant le nom ou le rôle de la personne qui doit signer le document. - Le filtre sign_here déclenche le téléchargement du PDF généré sur le site pdfMachine sign here.
- Le PDF téléchargé est chiffré et enregistré sur le site pdfMachine sign here, avec un champ de capture de signature.
- Un lien vers le document téléchargé est placé dans le corps de l'e-mail, à l'aide de la balise Liquid personnalisée {% sign_here_list %}.
- Lorsqu'un destinataire de l'e-mail clique sur le lien dans le corps de l'e-mail, il peut lire et signer le document.
- Lorsqu'un document est signé, vous êtes éventuellement notifié par e-mail avec un lien vers le document signé.
Utilisation de sign_here
sign_here: email, timestampFormat, languageCodeoù :
-
email
Facultatif. Une chaîne contenant l'adresse e-mail qui recevra des notifications lorsqu'un document est signé. -
timestampFormat
Facultatif. Une chaîne définissant l'apparence de l'horodatage sous la signature. La valeur par défaut est « YYYY-MM-DD HH:mm:ss ». Si une chaîne vide est fournie, aucun horodatage visuel n'apparaîtra sur le document PDF résultant. -
languageCode
Facultatif. Une chaîne de deux caractères définissant la langue que le site pdfMachine sign here utilisera. La valeur par défaut est l'anglais. Les langues prises en charge sont :
Anglais - « en », Espagnol - « es », Français - « fr », Italien - « it », Allemand - « de », Russe - « ru »
Exemple d'utilisation
Dans le document modèle :Ceci est l'accord entre Rick Smith et Some Guy Corporation.
Blah blah blah….
J'accepte les conditions.
{{ name | sign_here: "[email protected]", "DD/MMM/YYYY MM:hh:ss", "en" }}
Cher Rick Smith,
Veuillez cliquer sur le lien suivant pour lire puis signer l'accord :
Cordialement, Some Guy
Lorsque le destinataire signe, il peut télécharger le PDF signé. Un lien vers le PDF signé est envoyé par e-mail à « [email protected] ». Le PDF signé ressemble à :
Filtre group_by
Ce filtre fonctionne sur des tableaux d'objets. Il prend un nom de propriété comme paramètre. Tous les objets ayant la même valeur pour ce nom de propriété sont regroupés dans un tableau. Le résultat est un tableau de tableaux.
Exemple : Entrée :
{% assign groups = _rows | group_by: "cid" %}
{% for group in groups %}
{{group[0].cid}} {{group[0].name}}
{% endfor %}
Sortie :
1 Apples
2 Apples
