Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Développeurs

Référence technique du constructeur d'impression

Retrouvez les points d'entrée du constructeur d'impression Dodock, les méthodes de brouillon et les règles de validation des conditions.

Référence technique du constructeur d'impression

Cette page s'adresse aux développeurs qui interviennent sur le constructeur de la version next. Pour concevoir un format dans l'interface, consultez le guide utilisateur.

Points d'entrée

Les chemins suivants appartiennent au dépôt Dodock. Les composants internes décrivent l'implémentation actuelle, pas une interface d'extension stable.

RôleChemin
Page du constructeurfrappe/printing/page/print_format_builder/
Interface Vuefrappe/public/js/print_format_builder/PrintFormatBuilder.vue
État et opérations d'éditionfrappe/public/js/print_format_builder/stores/
Disposition et sectionsfrappe/public/js/print_format_builder/components/editor/
Inspection des propriétésfrappe/public/js/print_format_builder/components/inspector/
Redimensionnementfrappe/public/js/print_format_builder/composables/useColumnResize.js
Contrôleur du formatfrappe/printing/doctype/print_format/print_format.py
Génération du rendufrappe/utils/print_format_generator.py
Conversion des anciens formatsfrappe/printing/doctype/print_format/classic_converter.py

Le format publié utilise notamment format_data. Le brouillon conserve les propriétés modifiables par le constructeur dans draft_data. L'en-tête de lettre reste un document distinct.

Brouillons et versions

Les méthodes exposées se trouvent dans frappe.printing.doctype.print_format.print_format. Les écritures de brouillon vérifient les permissions et la valeur modified du format afin de refuser une modification concurrente.

MéthodeParamètresEffet
save_draftname, data, modifiedEnregistrer les propriétés autorisées dans le brouillon.
apply_draftname, modified, data facultatifAppliquer le brouillon au format et enregistrer une version.
discard_draftname, modifiedSupprimer le brouillon sans changer le format publié.
save_versionname, label, data, modifiedConserver une version nommée.
get_versionsnameLire les versions disponibles.
get_version_fieldsname, versionLire les propriétés d'une version.
restore_versionname, version, modifiedCharger une version dans le brouillon, sans la publier.
delete_versionname, versionSupprimer la version désignée.

useDraftSave.js coordonne l'enregistrement automatique et l'application manuelle. useVersions.js gère la consultation et la restauration. Utilisez la signature de la version installée avant d'appeler ces méthodes depuis une intégration.

Il n'existe pas, dans cette implémentation, de paramètres draft_expiry_days ou autosave_interval lus depuis hooks.py. Les méthodes autosave_draft et save_and_apply ne correspondent pas aux points d'entrée ci-dessus.

Conditions d'affichage

Les expressions visible_if sont évaluées côté serveur avec frappe.safe_eval. Elles utilisent la syntaxe Python, les données de doc et les paramètres de print_settings.

ExpressionRésultat
doc.status == "Paid"Afficher l'élément si le statut technique du document vaut Paid.
doc.total > 1500Afficher l'élément si total dépasse 1 500 dans la devise du document.
len(doc.get("items") or []) > 5Afficher l'élément si le document contient plus de cinq lignes dans items.

Ces exemples supposent que les données citées existent sur le type de document concerné. Les noms techniques et les valeurs de statut ne sont pas leurs traductions affichées dans l'interface. Les opérateurs JavaScript === et .length ne conviennent pas ici.

Une condition vraie affiche l'élément. Par exemple, doc.total < 100 l'affiche pour un montant inférieur à 100, au lieu de le masquer.

Les tableaux et répétiteurs peuvent aussi définir row_condition. Le générateur évalue cette expression pour chaque ligne avec la variable row. Une expression invalide peut empêcher le rendu. Vérifiez les cas vrai, faux et invalide avant de publier un format.

Aperçu et paramètres d'impression

download_builder_preview_pdf reçoit les données du format en cours et l'identifiant du document à imprimer. L'aperçu ne dispense pas des permissions de lecture et d'impression sur ce document.

Le panneau du format modifie ses propriétés, comme les marges, les couleurs ou le moteur PDF. La fenêtre ouverte par open_print_settings modifie le document singleton Print Settings avec frappe.client.set_value. Ces paramètres concernent le site.

Conversion et validation

classic_converter.py convertit les anciennes dispositions et conserve leur source dans classic_format_data. La conversion peut signaler des éléments non repris. Comparez les documents rendus avant et après conversion.

Les tests du contrôleur et du convertisseur se trouvent dans frappe/printing/doctype/print_format/test_print_format.py. Une modification des composants doit aussi être vérifiée dans l'interface et sur un PDF.

Voir aussi