propform peut générer des documents PDF après l'envoi d'un formulaire — par exemple, des documents relatifs au blanchiment d'argent, des mandats de notaire, des procès-verbaux de remise, des confirmations de réservation — et les enregistrer dans onOffice, les joindre à un e-mail, ou les deux.
propform utilise le onOffice PDF Designer pour la création de PDF. Lors de la soumission, propform demande à onOffice de rendre le modèle sélectionné et enregistre le résultat dans l'enregistrement souhaité.
> ⚠️ Limitation importante de l'API : il n'existe actuellement que l'appel API PDFExposé, pas de PDFBrief. Les documents relatifs au blanchiment d'argent, les mandats d'urgence, etc. sont donc également créés en tant qu'« exposés » — mais leur contenu correspond à celui de documents PDF tout à fait normaux. propform demande depuis des années à onOffice de mettre en place un appel API dédié aux lettres, mais cela n’a pas encore été implémenté.
Le modèle doit être explicitement « activé » — sinon, l'utilisateur de l'API ne pourra pas le lire :
Vous devez définir la taille du logo, les marges et les polices individuellement dans chaque nouveau modèle — ce qui est fastidieux. Créez un modèle maître avec votre configuration standard (logo en haut, marges, polices), et copiez-le à chaque fois au lieu d’en créer un nouveau à partir de zéro.
Si le PDF affiche les valeurs du formulaire sous forme de liste, cela prend vite un aspect peu esthétique en texte continu. Mieux vaut opter pour une mise en page sous forme de tableau.
Lors de la configuration de l'e-mail dans propform → dans le corps du message, cliquez sur « Ajouter les champs du formulaire en tant que macros » → propform insère toutes les macros de champ les unes après les autres dans le corps de l'e-mail.
Copiez ce bloc (Ctrl+C) et insérez-le dans le modèle PDF. Vous disposez ainsi de toutes les macros avec une orthographe correcte — ce qui vous évite de les rechercher manuellement.
_xVertragspartner)Résultat : un PDF propre et lisible avec deux colonnes.
Dans les Paramètres du formulaire → « Créer et enregistrer le fichier », vous configurez :
| Paramètre | Description |
|---|---|
| Modèle PDF | Sélectionner dans le menu déroulant des modèles onOffice |
| Emplacement de stockage | Adresse ou bien immobilier (ou les deux) |
| Caractéristique du document | facultatif — par ex. « Document anti-blanchiment », « Réservation », « Procès-verbal de remise » |
| Nom du fichier | Texte en clair avec macros, par ex. Geldwaesche_Doku_<_Vorname>_<_Name> |
| Protection PDF | facultatif, empêche toute modification ultérieure |
Dans la configuration de l'e-mail → cocher la case « Joindre les fichiers envoyés via le formulaire ». Les fichiers créés sont également considérés comme des « fichiers envoyés » et sont automatiquement joints.
> 💡 Workflow : Soumettre → Le fichier est créé en arrière-plan (1 à 3 secondes) → Le fichier est enregistré dans l'enregistrement → L'e-mail est envoyé au destinataire avec le fichier en pièce jointe.
Les champs/modèles sont mis à jour tous les matins. Si vous venez juste de créer un nouveau modèle dans onOffice :
Pour en savoir plus sur cette « astuce de rafraîchissement », consultez Les champs ne s'affichent pas.
Dans les modèles PDF générés par envoi d’e-mail, la résolution des macros s’effectue au niveau du destinataire de l’e-mail — et non au niveau de la personne qui envoie la demande. Cela entraîne des champs vides lorsque le destinataire est un collègue interne.
| Pré-macro | Signification |
|---|---|
_Kaeufer / _Buyer |
accède à l'acheteur lié au formulaire |
_Eigent / _Owner |
accède au propriétaire lié au formulaire |
_Mieter / _Renter |
accède au locataire associé au formulaire |
> ⚠️ Orthographe : La pré-macro et le nom du champ s'écrivent sans trait de soulignement entre les deux — donc _KaeuferVorname, et non _Kaeufer_Vorname.
Exemple dans le PDF :
Käufer: _KaeuferVorname _KaeuferName
Anschrift: _KaeuferStrasse, _KaeuferPlz _KaeuferOrt
Eigentümer: _EigentVorname _EigentName
C'est ainsi que les données correctes sont extraites — quel que soit le destinataire du mail.
📖 En savoir plus sur les liens d'adresse : Relier plusieurs enregistrements et Les valeurs ne sont pas transférées vers le PDF.
Si le PDF doit contenir des signatures, des scans de pièces d'identité ou d'autres images provenant de champs de fichiers, utilisez les macros de chemin d'accès aux fichiers :
_dateipfadAdressfeld(unterschrift_kaeufer;400;variabel;mail;html)
Paramètres (ordre important, séparés par des points-virgules) :
variabel (proportionnelle)px ou mmmail ou htmlPour les champs de fichiers immobiliers : _dateipfadObjektfeld(...) avec la même syntaxe.
Pour les contrats notariés ou les procès-verbaux de remise avec plusieurs acheteurs/propriétaires : utiliser la macro de chemin de fichier dans la boucle d'adresse — un champ de fichier distinct par acheteur :
Vertragspartner:
_buyerbrek_1_
- _BuyerVorname _BuyerName
Unterschrift: _ifEmpty(unterschrift_kaeufer;"";"_dateipfadAdressfeld(unterschrift_kaeufer;400;variabel;mail;html)")
_buyererek_1_
> 🔒 Toujours encapsuler _ifEmpty(...) : si un acheteur n'a pas encore signé (champ de fichier vide), la macro afficherait sinon un espace réservé. Avec l'encapsuleur _ifEmpty, l'emplacement reste simplement vide — le PDF reste propre.
Comme un champ de fichier ne stocke qu'un seul fichier, tu as besoin de deux champs de fichier distincts pour le recto et le verso de la pièce d'identité (par exemple ausweis_vorne et ausweis_hinten). Intégrez-les ensuite l'une après l'autre dans le PDF — idéalement dans un tableau avec une largeur de 600 px chacune.
Si le bouton « Créer et enregistrer le fichier » est activé, mais qu'aucun modèle n'est sélectionné : rien ne se passe. Pas de message d'erreur, pas de PDF.
Solution : sélectionne toujours explicitement un modèle. Si tu ne souhaites temporairement pas de PDF, désactive plutôt le bouton.
_Name, _Vorname, _Strasse)_objektart, _ort, _plz)Syntaxe incorrecte → le champ reste vide dans le PDF. Pour en savoir plus, consultez Les valeurs ne sont pas transférées vers le PDF.
Si le modèle n'apparaît pas dans le menu déroulant de propform, vérifiez :
Pour en savoir plus, consultez Mon formulaire n'enregistre pas les données, point 6.