Aktueller Entwicklungsstand
Hamlet: ein professioneller Publishing-Editor für 4D, WASM & ActiveX
Hamlet gehört zu den wichtigsten Entwicklungen auf unserer aktuellen Produktroadmap: ein nativer Editor für formatierten Text, Seitenlayout und datenbankgestützte Dokumenterstellung. Er wird zunächst für 4D entwickelt und soll später auch im Browser und in weiteren Windows-Datenbankumgebungen verfügbar sein. Das Ziel ist anspruchsvoll, aber klar: Entwickler sollen einen leistungsfähigen Dokumenteditor erhalten, der mit echten Datenbankdaten arbeitet und professionelle Rechnungen, Berichte, Briefe, Vorlagen und Publikationen erzeugt.
Die Idee hinter Hamlet
Unternehmensanwendungen benötigen oft weit mehr als ein einfaches Textfeld: strukturierte Dokumente, Vorlagen mit Datenbankanbindung, gestaltete Ausgaben, Seitenlayout, Druck- und PDF-Erzeugung sowie einen Editor, der sich nahtlos einfügt. Hamlet ist unsere Antwort darauf.
Warum wir Hamlet entwickeln
Die Grundidee ist einfach: einen leistungsfähigen Dokumenteditor mit datenbankgestützter Dokumenterstellung verbinden. Benutzer sollen ein Dokument visuell gestalten, aktuelle Datenbankfelder darin platzieren, echte Daten in der Vorschau sehen, Rechnungspositionen oder verknüpfte Datensätze wiederholen und das Ergebnis anschließend ohne Darstellungsverluste exportieren oder drucken können.
Hamlet ist deshalb mehr als ein Texteditor. Es ist eine Gestaltungsfläche für Publikationen, ein Vorlageneditor, eine Engine zum Zusammenführen von Vorlagen und Daten sowie eine einbettbare Anwendungskomponente. Es wird sowohl für interaktive Bearbeitung als auch für die automatisierte Dokumenterzeugung ohne sichtbare Oberfläche entwickelt.
Was bereits umgesetzt ist
- Bearbeitung formatierten Textes: Schriftfamilie, Schriftgröße, Fett- und Kursivschrift, Unterstreichung, Durchstreichung, Hoch- und Tiefstellung, Textfarbe, Hervorhebung, Zeilenhöhe, Zeichenabstand, Grundlinienversatz und Textabschnitte mit eigener Formatierung.
- Absatzformatierung: Ausrichtung, Abstände, Einzüge, Listen, Tabulatoren, Absatzhintergründe und Absatzrahmen.
- Seitenlayout: Papierformate, eigene Seitengrößen, Ränder, Bundstege, Kopf- und Fußzeilen, Seitenzahlen, Felder für die Gesamtseitenzahl, Zoommodi, Lineale und Seiteneinfassung.
- Dokumentobjekte: Tabellen, Bilder, PDFs, Textfelder, Linien, Formen, eigene Objekte und eingebettete Datenplatzhalter werden als echte Objekte im Dokumentmodell abgebildet.
- Tabellen: Bearbeitung von Zeilen und Spalten, Zelltext, Zell- und Tabellenformatierung, Verbinden und Trennen von Zellen, Tabellenformatvorlagen, Datenbindungen in Zellen und wiederholte Tabellenzeilen für datenbankgestützte Dokumente.
- Bilder und PDFs: eingebettete Bilddaten, Dateiimport, Einpassungsmodi, Fokuspunkt für Bildausschnitte, PDF-Import und -Analyse, Seitenauswahl, Behandlung der PDF-Seitenrahmen und skalierte Darstellung.
- Datenbankgestützte Dokumenterstellung: Felder, Variablen, Methoden, Formeln, Ausdrücke, Kennungen für dynamische Datenbindungen, direkte Aktualisierung, strukturierte Ergebnisse der Datenauflösung, Absicherung von Rückschreibvorgängen, Wiederholungsbereiche, Tabellenzeilenbereiche und Dokumenterstellung aus dem aktuellen Datensatz.
- Import und Export: Hamlet-Paketdateien, Klartext, unterstütztes HTML, PDF, PNG, mehrseitiger PNG-Export sowie Konvertierungspfade für RTF und DOCX.
- Ausgabeverarbeitung: Eine Display-List-Architektur hält die fertig berechnete Seitendarstellung fest und verwendet sie erneut für PDF-, PNG- und Druckausgabe.
Die Richtung der Benutzeroberfläche
Hamlet entwickelt sich zu einem professionellen System frei schwebender Werkzeugpaletten, wie man es aus Publishing- und Designanwendungen kennt. Aktuell gibt es Paletten für Zeichen, Absätze, Seiten, Objekte, Farben, Daten und Formatvorlagen. Sie nutzen dieselbe interne Architektur für Zeichnen, Trefferprüfung, Auswahllisten, Gruppierung, Andocken, Einklappen, Verschieben und das Speichern des jeweiligen Bereichszustands.
Die anspruchsvollen Aufgaben
Die größte Herausforderung besteht nicht darin, einzelne Funktionen hinzuzufügen. Entscheidend ist, dass alle Funktionen innerhalb einer eingebetteten Komponente sicher zusammenarbeiten. Die Darstellung muss schnell und deterministisch sein. Große Dokumente müssen flüssig bedienbar bleiben. Die Datenbankvorschau darf die Vorlage nicht verändern. Und der Export muss dem entsprechen, was Benutzer auf dem Bildschirm sehen.
- Sichere Ausführung als eingebettete Komponente: Der Editor muss sich in 4D-Formularen, künftigen Browseroberflächen und Windows-Komponentencontainern korrekt verhalten.
- Leistung bei großen Dokumenten: Textlayout, Werkzeugleistenstatus, Seitengeometrie und Sichtbarkeit der Einfügemarke dürfen keine wiederholte Suche durch das gesamte Dokument erfordern.
- Datenbankplatzhalter: Felder und Formeln dürfen keine bloßen Textmarkierungen sein. Sie müssen echte grafische Dokumentobjekte mit beständiger Identität sein.
- Schutz der Datenansicht: Die Vorschau aufgelöster Daten darf verborgene Vorlageninhalte nicht unbemerkt verändern.
- Originalgetreue Ausgabe: PDF-, PNG- und Druckausgabe müssen auf derselben berechneten Seitendarstellung beruhen wie der Editor, nicht auf einer zweiten Layout-Engine.
Die nächsten Schritte
Hamlet ist bereits ein leistungsfähiger Prototyp, aber noch nicht fertig. In der nächsten Phase geht es um Feinschliff, Darstellungstreue, vollständige Plattformunterstützung und umfassendere Arbeitsabläufe.
- Visuelle Prüfung: mehr Screenshot- und Referenzausgabetests für PDF, PNG, Druck, Werkzeugpaletten, Bilder, Tabellen und komplexe Seitenlayouts.
- Ausgereifter Druck und Export: bessere Durchsuchbarkeit und Vektortreue, klare Regeln für hochauflösende Ressourcen, abschnittsbezogene Ausgabe und umfassendere Abnahmetests für mehrseitige Dokumente.
- RTF- und DOCX-Treue: Erste Import- und Exportpfade bestehen bereits. Vollständige Formatabdeckung und breitere Kompatibilität beim Importieren und erneuten Exportieren bleiben weitere Aufgaben.
- Erweiterte Publishing-Oberfläche: umfassendere Navigation durch Datenbeziehungen, bessere Formatierungswerkzeuge und stärker geführte Abläufe für die datenbankgestützte Dokumenterstellung.
- Feinschliff der Objektbearbeitung: umfassendere Bedienelemente für Bilder, PDFs, Tabellen, Linien, Formen und Textfelder.
- Gleicher Funktionsumfang unter Windows: Darstellung, Dialoge, Zwischenablage, Druck und PDF-/Bildunterstützung müssen dort noch zur macOS-Umsetzung aufschließen.
Über 4D hinaus: Browser und ActiveX als Ziele
Obwohl Hamlet zunächst als 4D-Komponente entsteht, reicht die langfristige Vision weiter. Die Kernarchitektur wird so gestaltet, dass Hamlet später in mehr Umgebungen als nur einem Desktop-Plugin-Host verfügbar sein kann.
Geplante Plattformen
- WASM-/Browserversion: Eine WebAssembly-Ausgabe soll direkt im Browser laufen und Hamlet in Webanwendungen nutzbar machen — mit demselben Dokumentmodell, denselben Seitenlayout-Konzepten und demselben Publishing-Ablauf.
- ActiveX-Komponente: Eine Windows-ActiveX-Version für FoxPro-Datenbanken und andere Windows-Anwendungen mit ActiveX-Unterstützung soll es bestehenden Desktop-Datenbanksystemen ermöglichen, Hamlet als professionellen Dokumenteditor und Publishing-Komponente einzubetten.
- Gemeinsame Dokumentgrundlage: Dokumentmodell, Vorlagenkonzepte, Formatsystem, Objektmodell und Publishing-Logik sollen über 4D, Browser und Windows-Komponentenhosts hinweg einheitlich bleiben.
Eine Browserversion würde webbasierte Dokumentbearbeitung, Online-Vorlagengestaltung und servergestützte Publishing-Abläufe ermöglichen. Eine ActiveX-Version wäre für bestehende Windows-Datenbankanwendungen nützlich, besonders für Umgebungen wie Visual FoxPro, in denen eingebettete Dokumenterzeugung und datenbankgestützte Berichte weiterhin wichtig sind.
Diese künftigen Versionen erfordern erhebliche Entwicklungsarbeit. Für den Browser müssen Darstellung, Eingabe, Schriften, Zwischenablage, Dateizugriff und Export an die Webplattform angepasst werden. Für ActiveX braucht es eine stabile Windows-Komponentenschnittstelle, COM-/ActiveX-Automatisierungs-APIs, Hostintegration, geeignetes Druckverhalten und Bereitstellungsregeln. Die Richtung ist jedoch klar: Hamlet soll eine wiederverwendbare Publishing-Engine werden, nicht nur ein Editor für eine einzige Hostumgebung.
Die Zukunft
Langfristig soll Hamlet die Dokument-Engine werden, auf die Entwickler zurückgreifen können, wenn gewöhnliche Textbereiche nicht ausreichen. Es soll datenbankgestützte Vorlagen, professionelle Bearbeitung, Seitenlayout, wiederverwendbare Formate, eingebettete Medien, druckfertige Ausgabe und die automatisierte Dokumenterstellung per Code unterstützen.
In 4D kann Hamlet zu einem nativen Publishing-Editor werden. Eine künftige WASM-Version könnte dasselbe Bearbeitungs- und Publishing-Modell in Webanwendungen bringen. Unter Windows könnte eine ActiveX-Version Hamlet in FoxPro-Datenbanken und andere ActiveX-fähige Anwendungen integrieren, die weiterhin leistungsfähige Dokumenterzeugung benötigen.
Deshalb ist diese Entwicklung wichtig. Hamlet ist keine kosmetische Zusatzfunktion. Es schafft eine Grundlage für eine neue Klasse datenbankgestützter Dokument- und Publishing-Anwendungen.
Zusammengefasst: Hamlet entwickelt sich von einem Rich-Text-Editor-Prototyp zu einer vollständigen Publishing-Engine für 4D, mit Perspektiven für WebAssembly im Browser und ActiveX unter Windows. Es liegt noch viel Arbeit vor uns, doch die Architektur ist inzwischen tragfähig genug für diese Zukunft.