Nieuws

Hamlet: een professionele publicatie-editor voor 4D bouwen

Hamlet is een native editor voor rijke tekst, paginaopmaak en databasepublicaties, speciaal ontwikkeld voor 4D. Het doel: professionele documenten maken met echte databasegegevens, rechtstreeks binnen een 4D-formulier.

Hamlet: een professionele publicatie-editor voor 4D bouwen

Ontwikkelingsupdate

Hamlet: Het bouwen van een professionele uitgeverij voor 4D, WASM & ActiveX

Hamlet is een van de belangrijkste ontwikkelingen in onze huidige product roadmap: een native rich text, pagina layout en database publishing editor gebouwd eerst voor 4D, met een toekomstig pad naar de browser en andere Windows database omgevingen. Het doel is ambitieus maar duidelijk: ontwikkelaars een serieuze documenteditor geven die kan werken met echte databasegegevens en professionele output kan produceren voor facturen, rapporten, brieven, sjablonen en publicatie workflows.

Het idee achter Hamlet
Bedrijfstoepassingen hebben vaak meer nodig dan een eenvoudig tekstveld. Ze hebben gestructureerde documenten, database-bewuste sjablonen, gestylde output, pagina-layout, print/PDF-generatie en een editor die zich geïntegreerd voelt in plaats van ingeschakeld. Hamlet is ons antwoord op die behoefte.

Waarom Hamlet bestaat

De kernidee is eenvoudig: een rijke documenteditor combineren met database publicatie. Een gebruiker moet in staat zijn om een document visueel te ontwerpen, live database velden erin te plaatsen, echte gegevens voor te zien, factuurlijnen of gerelateerde records te herhalen en vervolgens het resultaat te exporteren of af te drukken zonder trouw te verliezen.

Dat betekent dat Hamlet niet alleen een teksteditor is. Het is een publicatieoppervlak, een sjabloonontwerper, een database merge engine en een embedded applicatiecomponent. Het wordt gebouwd om zowel interactief bewerken als automatische/offscreen documentgeneratie te ondersteunen.

Wat is uitgevoerd

  • Rijk tekstbewerking: letterfamilie, lettergrootte, dikte, itaal, onderstreep, streek, superscript, subscript, tekstkleur, highlight, lijnhoogte, letterspacing, baseline shift en stijl runs.
  • Inrichting van de paragraaf: aanpassing, afstand, indelingen, lijsten, tabbladstoppen, achtergronden van paragrafen en grenzen van paragrafen.
  • Page layout: papiervoorinstellingen, aangepaste paginagroottes, marges, gaters, koppen, voetstukken, pagina-nummers, pagina-tellingvelden, zoommodus, regeerders en pagina-chroom.
  • Documentvoorwerpen: tabellen, afbeeldingen, PDF's, tekstvakken, lijnen, vormen, aangepaste objecten en inline dataplaatshouders worden weergegeven als echte objecten voor documentmodellen.
  • Tabellen: rijen- en kolombewerking, celtext, celstyling, tabelstyling, fusie, onfusie, tabelstyling-voorinstellingen, tabel-cel databindingen en herhaalde tabelrijen voor databasepublicatie.
  • Afbeeldingen en PDF's: embedded image payloads, file import, fit modes, crop focus, PDF import, PDF inspectie, pagina selectie, page-box handling en schaal rendering.
  • Publicatie van databases: Fields, variabelen, methoden, formules, uitdrukkingen, live binding ids, direct refresh, gestructureerde resolverresultaten, writeback-bewakers, herhalende regio's, tabellenrijenregio's en workflows voor het samenvoegen van huidige records.
  • Invoer en uitvoer: Hamletpakketbestanden, plain text, ondersteunde HTML, PDF, PNG, meerpagina PNG-export, RTF en DOCX-conversiepaden.
  • Uitvoerpijpleiding: een pagina-display-list-architectuur registreert de uiteengezette pagina-waarheid en plaatst deze opnieuw voor PDF, PNG en print output.

Gebruikersinterface-richtlijn

Hamlet beweegt naar een professioneel zwevend toolpanel systeem, vergelijkbaar in geest met publicatie en ontwerp toepassingen. Het huidige toolpanel systeem omvat panelen voor karakter, paragraaf, pagina's, object, kleur, gegevens en stijlen. Deze panelen delen dezelfde interne architectuur voor tekenen, hits testen, dropdowns, groepering, docking, instorten, beweging en gebied-staat persistentie.

De harde delen

De grootste uitdaging is niet het toevoegen van geïsoleerde functies. De echte uitdaging is om alle functies veilig samen te laten werken binnen een ingebouwde component. Het tekenen moet snel en deterministisch zijn. Grote documenten moeten responsief blijven. Database preview mag de sjabloon niet vernietigen. Export moet overeenkomen met wat de gebruiker op het scherm ziet.

  • Ingebouwde runtime veiligheid: De editor moet zich correct gedragen in hostomgevingen zoals 4D formulieren, toekomstige browseroppervlakken en Windows componentcontainers.
  • Grote documentprestaties: de tekstopstelling, de status van de toolbar, de pagina-geometrie en de zichtbaarheid van het document moeten worden voorkomen dat het volledig wordt gescand.
  • Plaatshouders van databases: Het is de bedoeling dat de formules en velden niet plain text tokens zijn, maar echte grafische documentobjecten met een stabiele identiteit.
  • Bescherming van het beeld van gegevens: het voorzien van opgeloste gegevens mag de verborgen inhoud van de sjabloon niet in het geheim muteren.
  • Voorwaarde van de uitvoer: PDF, PNG en print output moeten afkomstig zijn van dezelfde pagina waarheid als de editor, niet van een tweede layout engine.

De weg voor ons

Hamlet is al een krachtig prototype, maar het is nog niet afgerond.

  • Visuele verificatie: meer screenshots en gouden-output-testen voor PDF, PNG, print, toolpanels, afbeeldingen, tabellen en complexe pagina-layouts.
  • Uitdrukkelijke en uitvoerstermijn: sterkere zoek- en vectorloyaliteit, een hoogoplossingsbeleid voor hulpbronnen, sectiebewust output en bredere acceptatietests op meerdere pagina's.
  • RTF- en DOCX-vertrouwen: de eerste invoer/exportroutes bestaan, maar volledige formatdekking en bredere terugreiscompatibiliteit blijven toekomstige werkzaamheden.
  • Geavanceerde publicatie-interface: Een betere relatie-browsing, betere formattetools en meer begeleide werkstromen voor het publiceren van databases.
  • Objectbewerkingspoel: richer beeld, PDF, tabel, lijn, vorm en tekstboxbeheer.
  • Windows pariteit: Windows rendering, dialoog, clipboard, drukwerk en PDF/beeldondersteuning moeten nog steeds op de hoogte blijven van de macOS-implementatie.

Beyond 4D: Browser en ActiveX Ambities

Hoewel Hamlet eerst wordt gebouwd als een 4D-component, is de langetermijnvisie breder. De kernarchitectuur wordt gevormd zodat Hamlet uiteindelijk beschikbaar kan worden in meer omgevingen dan één desktop plug-in host.

Toekomstige doelstellingen van het platform

  • WASM/browserversie: een WebAssembly-editie die rechtstreeks in de browser kan worden uitgevoerd, waardoor Hamlet bruikbaar is in webtoepassingen, terwijl hetzelfde documentmodel, pagina-layoutconcepten en het publiceren van workflow worden bewaard.
  • ActiveX component: een Windows ActiveX versie voor FoxPro-databases en andere Windows-toepassingen die ActiveX-controles ondersteunen, waardoor oude en desktopdatabasesystemen Hamlet kunnen integreren als een professionele documenteditor en publicatiecomponent.
  • Gezamenlijke documentenfondatie: Het doel is om het documentmodel, sjabloonconcepten, stijlsysteem, objectmodel en publicatielogica consistent te houden in 4D, browser en Windows component hosts.

Een browser-gebaseerde Hamlet zou de deur openen voor webgehost documentbewerking, online sjabloonontwerp en serververbindende publicatie werkstromen. Een ActiveX-versie zou Hamlet waardevol maken voor bestaande Windows-database-toepassingen, vooral omgevingen zoals Visual FoxPro waar ingebedde documentgeneratie en database-gedreven rapportage nog steeds belangrijk zijn.

Deze toekomstige versies zullen serieuze technische werk vereisen. Een browser build betekent het aanpassen van rendering, input, lettertypen, clipboard, bestandsacces en exportgedrag naar het webplatform. Een ActiveX build betekent het maken van een stabiel Windows componentoppervlak, COM/ActiveX automatisering API's, hostintegratie, drukgedrag en implementatieregels. Maar de richting is duidelijk: Hamlet moet een herbruikbare publicatiemotor worden, niet alleen een single-host editor.

De toekomst

De langetermijnvisie is voor Hamlet om de document engine ontwikkelaars kunnen vertrouwen op wanneer gewone tekst gebieden zijn niet genoeg. Het zou moeten ondersteunen database-gedreven templates, professionele bewerking, pagina layout, herbruikbare stijlen, ingebouwde media, print-ready output, en geautomatiseerde document generatie van code.

In 4D kan Hamlet een native publishing editor worden. In de browser kan een toekomstige WASM-versie datzelfde bewerkings- en publicatiemodel naar webtoepassingen brengen. Op Windows kan een toekomstige ActiveXversie Hamlet naar FoxPro-databases en andere ActiveX-actibele toepassingen brengen die nog steeds serieuze documentgeneratie nodig hebben.

Daarom is deze ontwikkeling van belang: Hamlet is geen cosmetische functie, maar de basis voor een nieuwe klasse document- en publicatietoepassingen die gebaseerd zijn op databases.

Kortom: Hamlet beweegt van een rijk tekst editor prototype naar een volledige publicatie engine voor 4D, met een toekomstpad naar WebAssembly in de browser en ActiveX op Windows. Er is nog serieus werk te doen, maar de architectuur is nu sterk genoeg om de toekomst die we bouwen naar te dragen.

Terug naar nieuws

Meer

Gerelateerde artikelen

2 mei 2026

Een tien uur durende debugsessie in AccountView

Softwareonderhoud is soms overzichtelijk. En soms betekent het tien uur zoeken in Visual FoxPro, oude ActiveX-elementen, tijdelijke DBF-bestanden, versleutelde gecompileerde code, verborgen viewers, crashende PDF-componenten en een hardnekkig transportmanagementsysteem.

Lees meer

Wilt u met ons samenwerken?

Neem contact op, dan bespreken we uw project.