Exemple — Maison Verte SARL Le responsable administratif de Maison Verte SARL souhaite générer des factures PDF plus rapidement et avec une meilleure qualité de rendu. Il active le moteur Typst pour ses formats d'impression et constate une réduction significative du temps de génération, tout en conservant une mise en page professionnelle et moderne.
Le moteur de rendu Typst est une alternative performante au moteur Chromium pour la génération de PDF à partir des formats d'impression créés avec le constructeur. Il offre des avantages en termes de vitesse, de consommation mémoire et de qualité de rendu, tout en étant entièrement intégré à Dokos.
Typst est un langage de composition moderne conçu pour la génération de documents. Contrairement à Chromium, qui nécessite un rendu complet de la page HTML avant de générer un PDF, Typst compile directement le document en PDF à partir d'une description structurée. Cela se traduit par des performances bien supérieures :
| Critère | Chromium | Typst |
|---|---|---|
| Temps de génération | ~1,5 seconde | ~90 millisecondes |
| Mémoire utilisée | ~300 Mo | ~39 Mo |
| Taille du fichier PDF | ~78 Ko | ~21 Ko |
Typst est une option opt-in : il doit être activé manuellement pour chaque format d'impression. Chromium reste le moteur par défaut pour les formats existants.
Exemple — Bureau Moderne Bureau Moderne souhaite ajouter une clause de confidentialité en bas de ses factures, formatée avec une police spécifique et des marges personnalisées. Il utilise un bloc Typst pour insérer directement du code Typst dans son format d'impression, sans avoir besoin de modifier le HTML ou le CSS.
Le bloc Typst est un nouveau type de bloc disponible dans le constructeur pour les formats utilisant le moteur Typst. Il permet d'insérer du code Typst brut, qui sera émis tel quel dans le document final. Ce bloc est l'équivalent du bloc HTML pour les formats Chromium.
#set text(font: "Helvetica", size: 10pt)
#align(center)[Clause de confidentialité]
#set text(size: 9pt)
#align(right)[Facture #doc.name]
Exemple — Maison Verte SARL Maison Verte utilise plusieurs lettres d'en-tête selon le type de document (facture, devis, bon de commande). Avec la nouvelle interface, elle peut désormais sélectionner directement la lettre d'en-tête depuis l'inspecteur, sans avoir à modifier le code HTML du format.
Dans les formats utilisant Typst, la lettre d'en-tête est désormais configurée comme un champ de lien dans l'inspecteur. Cela permet de sélectionner une lettre d'en-tête existante ou de laisser le champ vide pour ne pas en utiliser.
Typst ne supporte pas toutes les fonctionnalités disponibles dans les formats Chromium. Pour éviter des rendus incorrects ou des erreurs silencieuses, Dokos bloque l'enregistrement d'un format Typst si des fonctionnalités non supportées sont détectées. Voici la liste des blocages courants et comment les résoudre :
| Blocage | Description | Solution |
|---|---|---|
| Bloc HTML | Les blocs HTML ne sont pas supportés par Typst. | Remplacez le bloc HTML par un bloc Typst ou un bloc standard (texte, champ, etc.). |
| Modèle de champ Jinja | Les modèles Jinja dans les champs (ex. : {{ doc.customer_name }}) ne sont pas supportés. | Utilisez des champs simples ou des blocs Typst avec du templating Jinja. |
| CSS personnalisé non traduisible | Certaines règles CSS (ex. : position: absolute) ne sont pas supportées. | Utilisez les options de style du constructeur ou des blocs Typst pour des mises en page avancées. |
| Lettre d'en-tête HTML | Les lettres d'en-tête au format HTML ne sont pas supportées. | Convertissez la lettre d'en-tête en image ou utilisez une lettre d'en-tête Typst-native. |
| Codes-barres non-QR | Seuls les QR codes sont supportés par Typst. | Remplacez les codes-barres linéaires par des QR codes ou utilisez Chromium pour ces formats. |
Scénario : Bureau Moderne tente d'enregistrer un format Typst contenant un bloc HTML pour afficher une signature. Dokos bloque l'enregistrement avec le message :
Blocage : Bloc HTML non supporté par Typst.
Solution :
#image("path/to/signature.png", width: 100%)
#align(right)[Signature]
#set page(margin: (x: 1.5in, y: 1in))
| Problème | Cause possible | Solution |
|---|---|---|
| PDF non généré | Blocage non résolu ou erreur dans un bloc Typst. | Vérifiez les blocages et corrigez les erreurs dans les blocs Typst. |
| Mise en page incorrecte | Style personnalisé non supporté ou conflit avec les styles par défaut. | Simplifiez les styles ou utilisez des blocs Typst pour un contrôle précis. |
| Police non appliquée | Police Google Font non chargée ou police système manquante. | Vérifiez que la police est disponible ou utilisez une police standard. |
| QR code non généré | Champ vide ou format incorrect. | Vérifiez que le champ utilisé pour le QR code contient une valeur valide. |
bench --site [sitename] log) pour des erreurs détaillées.Scénario : Maison Verte SARL souhaite créer un format de facture moderne avec Typst, incluant un logo, un tableau des articles, un QR code pour le paiement, et une clause de confidentialité.
Logo Maison Verte).doc.payment_link (lien de paiement).#set text(size: 9pt, font: "Helvetica")
#align(center)[
Ce document est confidentiel. Toute reproduction ou diffusion non autorisée est interdite.
]
Facture Typst - Maison Verte.Maison Verte dispose désormais d'un format de facture moderne, généré en moins de 100 ms, avec :