Daten in Word kopieren

ParadiseCity

Erfahrenes Mitglied
Hallo! Ich weiß nicht, ob das ganze mit php realisierbar ist. Falls nicht bitte verschieben :D

Also zu meinem Problem:
Ich habe in einer MySQL-DB Mitglieder; Ausgabe auf der HP kein Problem;
Nun möchte ich aber wenn wir uns für eine Veranstaltung anmelden das ganze auch über die HP machen, nur war die Anmeldung bis auf einem Zettel (also nicht online). Seit kurzem gibt es aber die Möglichkeit, dass man sich die Anmeldung auch selber ausdrucken kann. Also hab ich mir gedacht, dass ich die Vorlage (die wir zugeschickt bekommen haben) nehme, da wo die Daten der Mitglieder reinkommen Textmarken erstelle und dieses Dokument dann als meine neue Vorlage abspeichere. Nun möchte ich diese Textmarken aus meinem PHP-Skript aus befüllen. Nur hab ich nicht wirklich einen Plan wie ich das jetzt angehen soll. :(
Heelp :)
 
Ich glaube nicht dass das auf einem simplen Weg zu lösen ist, da müsste
man bestimmt eine fertige Word Klasse zu Rate ziehen und ggf. umschreiben ...
Warum muss es ein Word Dokument sein, reicht ein simples HTML Dokument
nicht ?!

p.s.: GnR
thumbup1.gif
 
Warum erstellst du dir nicht einfach ein PDF? Dann hast du auch ein Dateiformat, daß im Gegensatz zu Word einen gewissen Standard darstellt und wirklich von so ziemlich jedem geöffnet werden kann.
 
Falls auf dem Server MSWord installiert ist, geht das recht gut über die COM-Schnittstelle... ich befürchte nur, da ist kein Word auf dem Server, oder?
 
HTML-Dokument wird glaub ich ausscheiden, da ja der Anmeldezettel eine gewisse Form/Formatierung haben muss. (und das ist doch eine ziemlich langwierige Speilerei, bis man das hinbekommt oder?) PDF das selbe...ich hab ja ein bestehendes Dokument, dass ich nur befüllen will. Darum hab ich mir gedacht, dass es vlt. am einfachsten ist, wenn man die Word-Vorlage einfach nimmt, und die Textmarken ausfüllt (bzw. ausfüllen lasst ;-) )

Nein, Office ist auf dem Server nicht installiert...

Hmm...gibts vlt. mit JavaScript eine Möglichkeit, lokal beim User das Word aufzurufen, die Vorlage vom Server zu holen und dann die Textmarken ausfüllen?

@ _voodoo: i know ;) *gg* freut mich, dass es noch andere gibt die auch so über GnR denken ;-)

// EDIT:
Warum erstellst du dir nicht einfach ein PDF? Dann hast du auch ein Dateiformat, daß im Gegensatz zu Word einen gewissen Standard darstellt und wirklich von so ziemlich jedem geöffnet werden kann.
Es ist ja nicht wichtig, dass das Dokument dann von vielen geöffnet werden kann. Es dient ja in erster Linie nur zur Anmeldung. Und dazu muss man es sowieso ausdrucken ;)
 
Zuletzt bearbeitet:
ParadiseCity hat gesagt.:
Hmm...gibts vlt. mit JavaScript eine Möglichkeit, lokal beim User das Word aufzurufen, die Vorlage vom Server zu holen und dann die Textmarken ausfüllen?
Theoretisch ja...praktisch nur im IE, und dort nur bei Sicherheitseinstellungen, die du nicht vorfinden wirst.:(
 
Du könntest das Word-Dokument erstamal mit Word nach HTML "konvertieren".

Dann gebe ihm wieder die Endung *.doc .

Die Formatierung bleibt dabei erhalten.... du kannst so aber bequem mittels RegExp den gewünschten Text bei den Textmarken(welche jetzt HTML-Anker sind) einfügen.
 
hmm...bis zu den RegExp hab ich´s noch kapiert ;) ;-) *g*

oder meinst du, dass ich dann in dem zu html konvertierten doc die Textmarken durch die Variablen ersetze?
 
Also... du konvertierst das mit Word zu HTML... dann hast du eine HTML-Datei mit der bisherigen Formatierung.
Du benennst sie wieder zurück nach *.doc(wobei...wenn ichs recht bedenke ist das nicht nötig...mehr dazu weiter unten).... dadurch wird sie weiterhin von Word geöffnet.... allerdings hast du jetzt kein binäres Wirrwar mehr, sondern eine HTML-Datei(oder besser gesagt das, was MSWord darunter versteht:-)).

Die bisherigen Word Textmarken stehen da in dieser Form drinnen:
Code:
<a name=textmarkenname></a>
mit PHP kannst du diese Datei jetzt per [phpf]file_get_contents[/phpf] einlesen, per preg_replace() die Textmarke ersetzen:
Code:
strDoc=file_get_contents('pfad/zur/datei.doc');
strDoc=preg_replace('@<a name=textmarkenname></a>@','was hinein soll',$strDoc);
Die Datei lieferst du dann aus, indem du einen DOC-header() sendest und ihren Inhalt ausgibst.

Anstatt die "Textmarke" zu ersetzen, kannst du dort natürlich auch etwas einfügen... dürfte aber nicht notwendig sein, da das Original ja nicht verändert wird.
 
Zurück