Seite 1 von 1

Word für Dummies

Verfasst: Mi, 30. Okt 2013 16:21
von Benz
Hi, nach längerem Suchen sowohl in der API-Referenz von Microsoft wie auch im Forum, bin ich leider nicht fündig geworden.
Und zwar suche ich die folgenden Befehle, die sich wahrscheinlich auseinander relativ schnell ergeben, ich weiß leider nur nicht wie die Objekte heißen:

- Schreiben von Text in Word
- Text aus Word herausholen
- Text in Word färben
- Text formatieren(fett,unterstrichen, kursiv,Schriftgröße, Schriftart,..)

Könnte ihr mir da einfach nur die Befehle hinklatschen?
Das wäre sehr freundlich :)
Was die genau machen finde ich dann schon selbst raus :wink:

Re: Word für Dummies

Verfasst: Mi, 30. Okt 2013 16:32
von Martin Altmann
Moin,
ich nutze den (einfacheren) Weg und schreibe RTF-Dateien - sind ja einfache Textdateien.
Man kann es sich einfach machen, indem man eine entsprechend aufbereitete Worddatei als RTF speichert und sich dann die Inhalte in einem Texteditor anschaut und als Grundlage nimmt.
Ansonsten sei empfohlen: http://de.wikipedia.org/wiki/Rich_Text_Format und hier die links am Ende (Spezifiaktionen).

Viele Grüße,
Martin

Re: Word für Dummies

Verfasst: Mi, 30. Okt 2013 16:41
von Tom
Ich mache das so ähnlich wie Martin, gehe aber noch einen Schritt weiter. Wir verwenden "TX Text Control", das u.a. das Laden beliebiger Word-Dokumente und deren Konvertierung in beliebige andere Formate unterstützt. Dadurch gibt es keinerlei Versionskonflikte (denn Word verhält sich nicht immer gleich), und außerdem kann man "rock bottom" im RTF-Text operieren, was erstens viel einfacher ist und zweitens auch schneller geht. RTF ist vergleichsweise übersichtlich, je nachdem, was man an Funktionalitäten unterstützen will. Die o.g. Operationen wären relativ simpel umzusetzen.

Knifflig wird es - übrigens in allen Varianten -, wenn findige Benutzer Attribute innerhalb eines Wortes ändern: Brausepaul. Das findet aber auch Word nicht mehr als Wort. :wink:

Re: Word für Dummies

Verfasst: Mi, 30. Okt 2013 23:52
von Werner_Bayern
Tom hat geschrieben:Knifflig wird es - übrigens in allen Varianten -, wenn findige Benutzer Attribute innerhalb eines Wortes ändern: Brausepaul. Das findet aber auch Word nicht mehr als Wort. :wink:

Code: Alles auswählen

oWord:documents:open(cWordDatei, .f., .t.)    // keine Konvertierungen anzeigen, readonly
oDoc := oWord:ActiveDocument:content
if oDoc:find:Execute(cText)
    ? cText, "gefunden"
endif
Einfach jetzt so geschrieben, müsste aber funktionieren.

Re: Word für Dummies

Verfasst: Do, 31. Okt 2013 0:48
von brandelh
Im Zweifelsfalle immer die mitgelieferten Beispiele durchforsten ;-)

:arrow: ...\XPPW32\source\samples\activex\msword

Re: Word für Dummies

Verfasst: Do, 31. Okt 2013 13:15
von Benz
Danke für eure ganzen Tips, hilft wirklich ungemein!
Ich würde das aber schon wenn möglich alles über die COM machen.
Das Beispiel mit den Bookmarks ist auch gut, das war eins der Dinge, die ich gesucht habe.
Aber das direkte Schreiben in Word ist damit ja leider noch nicht abgedeckt oder?
Ich meine, Word ersetzt in dem Beispiel ja nur die Bookmarks durch anderen Text. Kann man nicht in ein leeres Dokument auch irgendetwas schreiben, ohne bereits vorhandenes (was bei einem leeren Dokument ja nicht der Fall ist)
ersetzen zu müssen?

Re: Word für Dummies

Verfasst: Do, 31. Okt 2013 13:31
von Werner_Bayern
Benz hat geschrieben:Kann man nicht in ein leeres Dokument auch irgendetwas schreiben, ohne bereits vorhandenes (was bei einem leeren Dokument ja nicht der Fall ist)
ersetzen zu müssen?

Code: Alles auswählen

cText := "Das in Word einfügen..."

oWord := CreateObject("Word.Application")
IF Empty( oWord )
   confirmbox(, "Microsoft Word ist nicht installiert!" )
   return NIL
ENDIF
oWord := oWord:dynamicCast(ActiveXObject())
oWord:Visible := .t.
oWord:documents:open(cWordDatei, .f., .f.)
oWord:Selection:Text := cText
oWord:Application:Activate()
oWord:Destroy()

Re: Word für Dummies

Verfasst: Sa, 02. Nov 2013 9:06
von azzo
Hallo,
Ich poste hier mal einen alten Forumsbeitrag im FW Forum von mir.
mfg
Otto
In case you don’t know that Word 2007 files are pure xml files and you can manipulate direct those files I would like to mention this.

I did some tests with the new Word Open XML format and have
"search replace" working.

This is what I did:
1. rename from docx to zip
2. unpack
3. Seek and replace in the document.xml for placeholders
4. Zip again the files and rename back to docx.

Re: Word für Dummies

Verfasst: So, 03. Nov 2013 20:06
von Benz
Ich hab jetzt mal ne WHILE gemacht, mit der in
jeder Zeile ein neuer Eintrag erstellt wird:

Code: Alles auswählen

oWord:Selection:Text := "Text mit Variablen" + chr(13)
oWord:Selection:Collapse(0)
Ich glaube es war Collapse, was ich benutzt hatte, jedenfalls hat es soweit funktioniert.
Das Problem bei Selection ist, dass der eingefügte Text markiert wird. Das habe ich umgangen, indem ich Collapse(0) benutze.

Mit dem Code jetzt habe ich allerdings 2 Probleme:

1. Je nach Wordeinstellung wird dadurch ein Absatz erstellt. Keine einfache Leerzeile, sondern ein Absatz, also im Prinzip 2 Leerzeilen.
2. Meine Anwendung verlangt es, dass ich viele Seiten damit erstellen kann. In einem Fall waren es 170.
Dann bekomme ich aber immer Fehlermeldungen nach diesem Motto:

" Es liegen zu viele Rechtschreibfehler vor. Bitte benutzen Sie die Rechtschreibprüfung zur Korrektur." Und die kommt bei 170 Seiten ca. 3 Mal.
Kann man die irgendwie unterdrücken?

Re: Word für Dummies

Verfasst: Mo, 04. Nov 2013 5:09
von AUGE_OHR
Benz hat geschrieben:Mit dem Code jetzt habe ich allerdings 2 Probleme:
ich fürchte es ist erst der Anfang ...
sicherlich kann man per activeX einiges machen aber willst du VBA lernen oder mit deiner Arbeit voran kommen ?

ich meine damit wenn der Kunde eine "integrierte" Textverarbeitung möchte greife ich doch lieber zu einem 3-PP Tool wie TxControl.
wenn der Kunden seine Rechnungen "Layout"(en) will dann versuche es mal mit List & Label.

beide bieten dir auch Events und Methoden für die Rückmeldungen ( was der User macht ) denn die beachtest du wohl noch nicht.