Actualités

Hamlet : développer un éditeur de publication professionnel pour 4D

Hamlet est l’un des développements majeurs de notre feuille de route : un éditeur natif de texte enrichi, de mise en page et de publication depuis les données, conçu pour 4D. L’objectif : offrir un éditeur complet intégrable dans un formulaire 4D, utilisant les données réelles de la base pour produire des factures, rapports, lettres, modèles et publications professionnels.

Hamlet : développer un éditeur de publication professionnel pour 4D

Point sur le développement

Hamlet : un éditeur de publication professionnel pour 4D, WASM et ActiveX

Hamlet est l’un des développements majeurs de notre feuille de route actuelle : un éditeur natif de texte enrichi, de mise en page et de publication à partir de bases de données, conçu d’abord pour 4D et appelé à évoluer vers le navigateur et d’autres environnements de bases de données Windows. L’objectif est ambitieux mais clair : offrir aux développeurs un éditeur de documents complet, capable d’utiliser de vraies données métier et de produire des factures, rapports, lettres, modèles et publications de qualité professionnelle.

L’idée derrière Hamlet
Les applications métier ont souvent besoin de bien plus qu’un champ de texte : documents structurés, modèles reliés aux données, mise en forme, mise en page, génération d’impressions et de PDF, et éditeur réellement intégré. Hamlet est notre réponse à ce besoin.

Pourquoi Hamlet existe

L’idée centrale est simple : associer un éditeur de documents riche à la publication depuis une base de données. L’utilisateur doit pouvoir concevoir visuellement un document, y placer des champs de base de données à jour, prévisualiser les données réelles, répéter des lignes de facture ou des enregistrements liés, puis exporter ou imprimer le résultat sans perte de fidélité.

Hamlet est donc plus qu’un éditeur de texte : c’est un espace de publication, un concepteur de modèles, un moteur de fusion de données et un composant intégrable dans une application. Il est développé pour permettre à la fois l’édition interactive et la génération automatisée de documents sans affichage à l’écran.

Ce qui est déjà implémenté

  • Texte enrichi : famille et taille de police, gras, italique, soulignement, texte barré, exposant, indice, couleur, surlignage, hauteur de ligne, espacement des lettres, décalage de la ligne de base et plages de texte stylées.
  • Mise en forme des paragraphes : alignement, espacements, retraits, listes, tabulations, fonds et bordures.
  • Mise en page : formats de papier prédéfinis ou personnalisés, marges, gouttières, en-têtes, pieds de page, numéros et nombre total de pages, modes de zoom, règles et éléments d’encadrement des pages.
  • Objets de document : tableaux, images, PDF, zones de texte, lignes, formes, objets personnalisés et emplacements de données intégrés au texte sont de véritables objets du modèle documentaire.
  • Tableaux : modification des lignes et colonnes, texte et styles des cellules, styles de tableaux, fusion et séparation, styles prédéfinis, liaisons de données des cellules et répétition des lignes pour la publication depuis la base.
  • Images et PDF : images intégrées, import de fichiers, modes d’ajustement, point de cadrage, import et inspection de PDF, sélection des pages, gestion des zones de page et rendu à l’échelle.
  • Publication depuis la base : champs, variables, méthodes, formules, expressions, identifiants de liaison active, actualisation directe, résultats structurés de résolution, protections des écritures en retour, zones répétées, zones de lignes de tableau et fusion de l’enregistrement courant.
  • Import et export : paquets Hamlet, texte brut, HTML pris en charge, PDF, PNG, export PNG multipage et conversions RTF et DOCX.
  • Chaîne de sortie : une architecture de listes d’instructions de dessin enregistre la représentation exacte de la page mise en forme, puis la réutilise pour les sorties PDF, PNG et imprimées.

L’orientation de l’interface

Hamlet évolue vers un système professionnel de palettes d’outils flottantes, dans l’esprit des applications de publication et de design. Il comprend actuellement les palettes Caractère, Paragraphe, Pages, Objet, Couleur, Données et Styles. Toutes partagent une architecture pour le dessin, la détection des interactions, les listes déroulantes, le regroupement, l’ancrage, le repli, le déplacement et la conservation de l’état des zones.

Les difficultés

Le plus grand défi n’est pas d’ajouter des fonctions isolées, mais de les faire fonctionner ensemble en toute sécurité dans un composant intégré. Le dessin doit être rapide et déterministe. Les grands documents doivent rester réactifs. La prévisualisation des données ne doit pas altérer le modèle. L’export doit correspondre à l’affichage.

  • Sûreté de l’exécution intégrée : l’éditeur doit se comporter correctement dans les formulaires 4D, les futurs environnements de navigateur et les conteneurs de composants Windows.
  • Performance des grands documents : la mise en forme du texte, l’état des barres d’outils, la géométrie des pages et la visibilité du curseur doivent éviter les parcours répétés du document entier.
  • Emplacements de données : les champs et formules ne peuvent pas être de simples marqueurs textuels ; ils doivent être de véritables objets graphiques dotés d’une identité stable.
  • Protection de la vue de données : la prévisualisation des données résolues ne doit pas modifier discrètement le contenu masqué du modèle.
  • Fidélité des exports : les PDF, PNG et impressions doivent utiliser la même représentation de page que l’éditeur, sans second moteur de mise en page.

Les prochaines étapes

Hamlet est déjà un prototype puissant, mais il n’est pas terminé. La prochaine phase concerne les finitions, la fidélité du rendu, la prise en charge complète des plateformes et l’approfondissement des usages.

  • Vérification visuelle : davantage de tests par captures d’écran et comparaison à des sorties de référence pour les PDF, PNG, impressions, palettes, images, tableaux et mises en page complexes.
  • Maturité de l’impression et de l’export : meilleure fidélité vectorielle et conservation du texte recherchable, gestion des ressources haute résolution, prise en compte des sections et tests d’acceptation multipages plus larges.
  • Fidélité RTF et DOCX : les premiers parcours d’import et d’export existent, mais la couverture complète des formats et la fidélité des allers-retours restent à développer.
  • Interface de publication avancée : exploration plus poussée des relations, meilleurs outils de formatage et parcours de publication depuis les données davantage guidés.
  • Finitions de l’édition d’objets : commandes plus riches pour les images, PDF, tableaux, lignes, formes et zones de texte.
  • Parité Windows : le rendu, les boîtes de dialogue, le presse-papiers, l’impression et la prise en charge des PDF et images sous Windows doivent encore rattraper la version macOS.

Au-delà de 4D : les ambitions navigateur et ActiveX

Hamlet est d’abord développé comme composant 4D, mais notre vision à long terme est plus large. Son architecture est conçue pour qu’il puisse être proposé dans plusieurs environnements, au-delà d’un seul hôte de plug-ins de bureau.

Objectifs de plateformes à venir

  • Version WASM pour navigateur : une édition WebAssembly fonctionnant directement dans le navigateur, afin d’utiliser Hamlet dans les applications web tout en conservant le modèle documentaire, les principes de mise en page et les parcours de publication.
  • Composant ActiveX : une version Windows ActiveX pour les bases FoxPro et autres applications Windows compatibles, afin que les systèmes de bases de données anciens ou de bureau intègrent Hamlet comme éditeur de documents et composant de publication professionnel.
  • Socle documentaire commun : conserver un modèle de document, des concepts de modèles, un système de styles, des objets et une logique de publication cohérents entre 4D, le navigateur et les hôtes de composants Windows.

Un Hamlet dans le navigateur permettrait l’édition de documents hébergée sur le web, la conception de modèles en ligne et la publication reliée au serveur. Une version ActiveX serait utile aux applications de bases de données Windows existantes, notamment Visual FoxPro, où la génération intégrée de documents et de rapports depuis les données reste essentielle.

Ces versions nécessiteront un travail technique important. Le navigateur impose d’adapter le rendu, la saisie, les polices, le presse-papiers, l’accès aux fichiers et l’export. ActiveX exige une interface de composant Windows stable, des API d’automatisation COM/ActiveX, l’intégration à l’hôte, la gestion de l’impression et les règles de déploiement. Mais l’orientation est claire : Hamlet doit devenir un moteur de publication réutilisable, au-delà d’un éditeur pour un seul hôte.

L’avenir

À long terme, Hamlet doit devenir le moteur documentaire sur lequel les développeurs peuvent compter lorsqu’un champ de texte ne suffit plus. Il doit prendre en charge les modèles alimentés par les bases de données, l’édition professionnelle, la mise en page, les styles réutilisables, les médias intégrés, les sorties prêtes à imprimer et la génération automatisée par le code.

Dans 4D, Hamlet peut devenir un éditeur de publication natif. Dans le navigateur, une future version WASM pourrait apporter le même modèle d’édition et de publication aux applications web. Sous Windows, une future version ActiveX pourrait l’intégrer à FoxPro et aux autres applications compatibles qui ont besoin d’une génération documentaire avancée.

C’est pourquoi ce développement compte. Hamlet n’est pas une fonction décorative : il constitue la base d’une nouvelle catégorie d’applications documentaires et de publication alimentées par les données.

En résumé : Hamlet passe du prototype d’éditeur de texte enrichi à un moteur de publication complet pour 4D, avec une évolution prévue vers WebAssembly dans le navigateur et ActiveX sous Windows. Il reste beaucoup à faire, mais l’architecture est désormais assez solide pour porter cette ambition.

Retour aux actualités

À découvrir

Articles associés

7 mai 2026

4D Agenda : du code de l’ère Carbon en 2003 à un plug-in macOS moderne en 2026

Nous avons achevé une modernisation majeure de 4D Agenda : ce plug-in classique du début des années 2000 dispose désormais d’un code macOS propre, stable et moderne. Le code d’origine, datant d’environ 2003, avait longtemps bien servi, mais accumulait les anciens rendus, branches de plateformes, hypothèses du Mac classique et couches de compatibilité dignes d’un musée.

2 mai 2026

Dix heures de débogage dans AccountView

Parfois, la maintenance logicielle est claire et prévisible. Et parfois, ce sont dix heures face à Visual FoxPro, des contrôles ActiveX anciens, des fichiers DBF temporaires, du code compilé brouillé, des visionneuses cachées, des composants PDF qui plantent et un système de gestion du transport obstiné qui refuse de livrer ses secrets.

27 avr. 2026

Affichage de documents dans FoxPro

Créer une visionneuse de documents très rapide pour les anciennes applications FoxPro, sans exiger de moderniser d’abord l’application hôte.

Vous souhaitez travailler avec nous ?

Contactez-nous pour échanger sur votre projet.