Hallo Rolf,
D.h. ein Nachbau ist schwierig und zeitaufwändig.
Davon habe ich auch nicht gesprochen. Oder wäre das dein geplanter Fallback gewesen?
Ja, das wäre der Fallback, den wir im Team so besprochen haben. Das wurde mit anderen, einfacheren Dokumente mal so gemacht.
die in einer DB auf einem Webserver liegen
Dass die DB auf einem Webserver liegt, ist nicht das Problem. Es ist eine Sache der Serverkonfiguration, ob man darauf zugreifen kann. Oder alternativ stellst Du auf dem Webserver ein PHP Script hin, das die Daten geeignet bereitstellt (XML, JSON, CSV). Diese Ausgabe ist nicht für den Browser gedacht, sondern für ein anderes Programm.
Zum Ausfüllen könntest Du dann auf einem Windows-Gerät ein weiteres PHP Script laufen lassen (z.B. als Command-Line Tool), das auf das Server-PHP zugreift, die Daten holt, parsed und basierend darauf die COM Automatisierung durchführt.
Das ist natürlich komplex und ein fetter Werkzeug-Stack. Ob das sinnvoll ist, hängt auch davon ab, wie es nach dem Ausfüllen weiter geht. Muss das DOC dann einfach als Datei weitergegeben werden? Muss es gedruckt und versendet werden?
Klingt interessant und machbar. Das wäre vermutlich der nächste Schritt, wenn ich phpword nicht weiterkomme. Eine andere Idee wäre noch, das Dokument binär einzulesen und irgendwie den Quellcode zu manipulieren.
Das hatte ich mal sehr erfolgreich mit ebensolchen amtlichen PDF-Dokumenten gemacht (da durfte das Aussehen GAR nicht verändert werden). War aber eine unglaubliche Fummelei, weil ich mit bis dato mit dem PDF-Format im Detail nicht auskannte. Das ganze ging über Platzhalter bzw. Feldnamen.
Wenn PHPWord deinen Zwecken genügt und Dich die Komplexität einer COM Lösung abschreckt, dann mach das, womit Du Dich gut fühlst. Weil - bei der COM Automatisierung stündest Du ziemlich allein da, da kann ich Dir nicht zeigen wie es geht.
Wenn Du „nur“ PHP und Python kannst, ist die VBA-Idee vermutlich auch nichts für Dich.
VBA hatte ich im Grundstudium, da hab ich diverse Tools entwickelt. Allerdings hab ich mich von der Windows-Welt komplett losgesagt. Von daher, ich kann es zwar prinzipiell, aber hab keine Erfahrung damit. C und C# hätte ich noch, wird aber auch nix bringen? Obwohl C#... hmm? Java hilft mir auch nicht weiter, kann ich auf dem System auch nicht laufen lassen.
Ich muss es einfach mal mit PHP Word probieren. Danke Rolf!