Nieuws

Hamlet: een professionele publicatie-editor voor 4D ontwikkelen

Hamlet is een van de belangrijkste ontwikkelingen in ons huidige productplan: een native editor voor opgemaakte tekst, pagina-indeling en databasepublicaties, speciaal voor 4D. Het doel is ambitieus maar helder: 4D-ontwikkelaars een volwaardige documenteditor bieden die in een 4D-formulier draait, met echte databasegegevens werkt en professionele facturen, rapporten, brieven, templates en publicaties oplevert.

Hamlet: een professionele publicatie-editor voor 4D ontwikkelen

Ontwikkelupdate

Hamlet: een professionele publicatie-editor voor 4D, WASM & ActiveX ontwikkelen

Hamlet is een van de belangrijkste ontwikkelingen in ons huidige productplan: een native editor voor opgemaakte tekst, pagina-indeling en databasepublicaties. We bouwen deze eerst voor 4D, met later mogelijkheden voor de browser en andere Windows-databaseomgevingen. Het doel is ambitieus maar helder: ontwikkelaars een volwaardige documenteditor bieden die met echte databasegegevens werkt en professionele facturen, rapporten, brieven, templates en publicaties oplevert.

Het idee achter Hamlet
Bedrijfsapplicaties hebben vaak meer nodig dan een eenvoudig tekstveld: gestructureerde documenten, templates die met databases werken, opgemaakte uitvoer, pagina-indeling, afdrukken en pdf-generatie. Daar hoort een editor bij die geïntegreerd aanvoelt. Hamlet is ons antwoord op die behoefte.

Waarom Hamlet bestaat

Het basisidee is eenvoudig: een uitgebreide documenteditor combineren met publiceren vanuit databases. Een gebruiker moet een document visueel kunnen ontwerpen, actuele databasevelden plaatsen, een voorbeeld met echte gegevens bekijken, factuurregels of gerelateerde records herhalen en het resultaat zonder verlies van opmaak exporteren of afdrukken.

Hamlet is daarom meer dan een teksteditor. Het is een omgeving voor paginaopmaak, een templateontwerper, software voor het samenvoegen van documenten met databasegegevens en een in te bouwen applicatiecomponent. Het wordt ontwikkeld voor zowel interactief bewerken als automatische documentgeneratie zonder zichtbare editor.

Wat al is geïmplementeerd

  • Opgemaakte tekst bewerken: lettertype, tekstgrootte, vet, cursief, onderstrepen, doorhalen, superscript, subscript, tekstkleur, markeerkleur, regelhoogte, letterspatiëring, basislijnverschuiving en tekstgedeelten met eigen opmaak.
  • Alineaopmaak: uitlijning, tussenruimtes, inspringing, lijsten, tabstops, alinea-achtergronden en alineakaders.
  • Pagina-indeling: standaardpapierformaten, eigen paginamaten, marges, tussenruimtes, kop- en voetteksten, paginanummers, velden voor het aantal pagina’s, zoommodi, linialen en bediening rond de pagina.
  • Documentobjecten: tabellen, afbeeldingen, pdf’s, tekstvakken, lijnen, vormen, eigen objecten en gegevensplaatshouders in tekst zijn volwaardige objecten in het documentmodel.
  • Tabellen: rijen en kolommen bewerken, celtekst, cel- en tabelopmaak, samenvoegen en splitsen, vooraf ingestelde tabelstijlen, gegevenskoppelingen in cellen en herhalende tabelrijen voor databasepublicaties.
  • Afbeeldingen en pdf’s: ingebedde beeldgegevens, bestandsimport, passende weergavemodi, focus bij uitsnijden, pdf-import en -inspectie, paginakeuze, verwerking van paginakaders en geschaalde weergave.
  • Databasepublicaties: velden, variabelen, methoden, formules, expressies, vaste identificatoren voor actuele gegevenskoppelingen, direct vernieuwen, gestructureerde resultaten van gegevensopvraging, bescherming bij terugschrijven, herhalende gebieden en tabelrijen, en samenvoegen met het huidige record.
  • Import en export: Hamlet-pakketbestanden, platte tekst, ondersteunde HTML, PDF, PNG, export naar PNG over meerdere pagina’s en conversieroutes voor RTF en DOCX.
  • Uitvoerverwerking: een architectuur met tekenlijsten legt de definitieve pagina-indeling vast en gebruikt diezelfde instructies voor PDF, PNG en afdrukken.

De richting van de gebruikersinterface

Hamlet krijgt een professioneel systeem van zwevende gereedschapspanelen, vergelijkbaar met publicatie- en ontwerpsoftware. De huidige panelen omvatten Teken, Alinea, Pagina’s, Object, Kleur, Gegevens en Stijlen. Ze delen één interne architectuur voor tekenen, hit-testing, keuzemenu’s, groeperen, vastzetten, inklappen, verplaatsen en het bewaren van de paneeltoestand.

De lastige onderdelen

De grootste uitdaging is niet losse functies toevoegen, maar alle functies veilig laten samenwerken binnen een ingebouwde component. De weergave moet snel en voorspelbaar zijn, grote documenten moeten vlot reageren, een voorbeeld met databasegegevens mag de template niet beschadigen en exports moeten overeenkomen met wat de gebruiker op het scherm ziet.

  • Veilige uitvoering binnen andere applicaties: de editor moet correct werken in omgevingen zoals 4D-formulieren, toekomstige browserinterfaces en Windows-componentcontainers.
  • Prestaties bij grote documenten: tekstopmaak, werkbalkstatus, paginageometrie en zichtbaarheid van de tekstcursor mogen niet telkens het hele document hoeven te doorlopen.
  • Databaseplaatshouders: velden en formules kunnen geen gewone teksttokens zijn. Het moeten echte grafische documentobjecten met een stabiele identiteit zijn.
  • Bescherming tijdens gegevensweergave: een voorbeeld met ingevulde gegevens mag niet ongemerkt de onderliggende template wijzigen.
  • Nauwkeurige export: PDF, PNG en afdrukken moeten dezelfde pagina-indeling gebruiken als de editor, niet die van een tweede opmaakengine.

De volgende stappen

Hamlet is al een krachtig prototype, maar nog niet af. De volgende fase draait om verfijning, nauwkeurigheid, volledige platformondersteuning en uitgebreidere werkprocessen.

  • Visuele controle: meer schermafbeeldingstests en vergelijking met vaste referentie-uitvoer voor PDF, PNG, afdrukken, gereedschapspanelen, afbeeldingen, tabellen en complexe pagina’s.
  • Afdrukken en export verder ontwikkelen: beter behoud van doorzoekbare tekst en vectoren, beleid voor bestanden met hoge resolutie, uitvoer die rekening houdt met secties en bredere acceptatietests met meerdere pagina’s.
  • Nauwkeurige RTF- en DOCX-verwerking: de eerste import- en exportroutes bestaan, maar volledige formaatondersteuning en beter behoud bij heen-en-weerconversie vragen nog werk.
  • Geavanceerde publicatie-interface: uitgebreider bladeren door gegevensrelaties, betere opmaakhulpmiddelen en meer begeleiding bij databasepublicaties.
  • Objectbewerking verfijnen: uitgebreidere bediening voor afbeeldingen, pdf’s, tabellen, lijnen, vormen en tekstvakken.
  • Gelijke mogelijkheden op Windows: weergave, dialoogvensters, klembord, afdrukken en PDF- en beeldondersteuning op Windows moeten nog op het niveau van macOS worden gebracht.

Verder dan 4D: plannen voor browser en ActiveX

Hoewel Hamlet eerst als 4D-component wordt gebouwd, is de langetermijnvisie breder. De kernarchitectuur krijgt een vorm waarmee Hamlet later in meer omgevingen beschikbaar kan komen dan één desktopplatform voor plug-ins.

Toekomstige platformdoelen

  • WASM-/browserversie: een WebAssembly-versie die rechtstreeks in de browser draait, zodat Hamlet bruikbaar wordt in webapplicaties met behoud van hetzelfde documentmodel, dezelfde paginaopmaakprincipes en dezelfde publicatiewerkwijze.
  • ActiveX-component: een Windows ActiveX-versie voor FoxPro-databases en andere Windows-applicaties die ActiveX ondersteunen. Zo kunnen bestaande desktopdatabasesystemen Hamlet inbouwen als professionele documenteditor en publicatiecomponent.
  • Gedeelde documentbasis: het doel is het documentmodel, de templateconcepten, stijlen, objecten en publicatielogica consistent te houden in 4D, de browser en Windows-componentomgevingen.

Een browserversie maakt documentbewerking via het web, online templateontwerp en publicatieprocessen met serverkoppelingen mogelijk. Een ActiveX-versie maakt Hamlet waardevol voor bestaande Windows-databaseapplicaties, met name Visual FoxPro, waar ingebouwde documentgeneratie en databasegestuurde rapportage nog steeds belangrijk zijn.

Deze versies vragen aanzienlijk technisch werk. Voor de browser moeten we weergave, invoer, lettertypen, klembord, bestandstoegang en export aan het webplatform aanpassen. ActiveX vereist een stabiele Windows-componentinterface, COM/ActiveX-automation-API’s, integratie met de omringende applicatie, correct afdrukgedrag en installatieafspraken. De richting is duidelijk: Hamlet moet een herbruikbare publicatie-engine worden, niet alleen een editor voor één host.

De toekomst

Op lange termijn moet Hamlet de documentengine worden waarop ontwikkelaars kunnen vertrouwen wanneer gewone tekstvelden niet volstaan. Het moet databasegestuurde templates, professioneel bewerken, pagina-indeling, herbruikbare stijlen, ingebedde media, drukklare uitvoer en automatische documentgeneratie vanuit code ondersteunen.

In 4D kan Hamlet een native publicatie-editor worden. Een toekomstige WASM-versie kan hetzelfde bewerkings- en publicatiemodel naar webapplicaties brengen. Een toekomstige ActiveX-versie kan Hamlet op Windows beschikbaar maken voor FoxPro-databases en andere ActiveX-applicaties die uitgebreide documentgeneratie nodig hebben.

Daarom is deze ontwikkeling belangrijk. Hamlet is geen cosmetische toevoeging, maar een basis voor een nieuwe categorie databasegestuurde document- en publicatieapplicaties.

Samengevat: Hamlet ontwikkelt zich van een prototype voor opgemaakte tekst naar een volledige publicatie-engine voor 4D, met later mogelijkheden voor WebAssembly in de browser en ActiveX op Windows. Er ligt nog veel werk, maar de architectuur is nu sterk genoeg om die toekomst te dragen.

Terug naar nieuws

Meer

Gerelateerde artikelen

7 mei 2026

4D Agenda: van Carbon-code uit 2003 naar een moderne macOS-plug-in voor 2026

We hebben 4D Agenda ingrijpend gemoderniseerd: een klassieke 4D-plug-in uit het begin van deze eeuw kreeg een heldere, stabiele en moderne macOS-codebase. De oorspronkelijke code stamt uit ongeveer 2003 en had jarenlang trouw dienstgedaan, maar bevatte ook oude tekenroutines, platformvertakkingen, aannames uit het klassieke Mac-tijdperk en genoeg historische compatibiliteitscode om een museumconservator tevreden te stellen.

2 mei 2026

Tien uur foutzoeken in AccountView

Soms is softwareonderhoud overzichtelijk en voorspelbaar. En soms bestaat het uit tien uur zoeken in Visual FoxPro, oude ActiveX-componenten, tijdelijke DBF-bestanden, onleesbare gecompileerde code, verborgen viewers en crashende PDF-componenten, in een koppig transportmanagementsysteem dat zijn geheimen niet zomaar prijsgeeft.

27 apr 2026

FoxPro Document Display

Een snelle documentviewer voor bestaande FoxPro-applicaties, zonder dat de omringende applicatie eerst gemoderniseerd hoeft te worden.

Wilt u met ons samenwerken?

Neem contact op, dan bespreken we uw project.