CX_WORD_XML::PutFormattedText
Beschreibung:
Kopiert den Inhalt des übergebenen Word-Dokuments absatzweise ans Ende des aufrufenden Dokuments. Sollte der letzte Absatz des Dokuments leer sein, was bei einem leeren Dokument zum Beispiel der Fall ist, dann wird der erste Absatz des einzufügenden Dokuments den leeren Absatz ersetzen.
Wie auch bei Merge, merkt sich CX_WORD_XML bei PutFormattedText die Dokumente, deren Dokumentreferenzen bereits reinkopiert wurden. PutFormattedText konvertiert automatisch alle nach CX_WORD_XML konvertierbaren Pramameter falls nötig.
- CX_MULTIPLE_WORD_XML durch laden der aktuellen Sprache
- CX_COM_OBJECT über GetXML vom ToolObjekt
- CX_MULTIPLE_COM_OBJECT durch laden der aktuellen Sprache und anschließender Konvertierung mit GetXML vom ToolObjekt
Aus Performanzegründen sollte auf die Übergabe von COM-Objekten als Parameter verzichtet werden, da jede Konvertierung viel Zeit kostet und bei jeder Konvertierung neue XML Objekte erstellt werden, sodass
alle Dokumentreferenzen jedes mal neu importiert werden, auch wenn das COM-Objekt bereits eingefügt wurde. Das hat zur Folge, dass bei häufigem einfügen des gleichen COM-Objekts der Druck sehr lange dauert
und das Ergebnisdokument enorm groß wird.
Diesen Effekt kann man verhindern, indem ein solches COM-Objekt vor dem Druckvorgang einmal mit GetXML in ein CX_WORD_XML-Objekt konvertiert wird und dieses für den Druckvorgang benutzt.
Das PutFormattedText verädert den transitiven Bereich des Dokuments. Damit Änderungen in der Datenbank übernommen werden, muss SaveXMLString aufgerufen werden.
Bis zur Dll-Version 4.5.2.158947 hat PutFormattedText ausschließlich Parameter vom Typ CX_WORD_XML akzeptiert
Code-Beispiel:
//Einzufügendes Dokument initialisieren
CreateTransObject(CX_WORD_XML) -> insertXml
insertXml Call(EmptyDocument)
"Dies wurde eingefügt" insertXml Call(PutText)
insertXml Call(InsertBreak)
//Zieldokument initialisieren
CreateTransObject(CX_WORD_XML) -> targetXml
targetXml Call(EmptyDocument)
//10 Mal Dokument einfügen
1 -> c
do
"Seite " c + targetXml Call(PutText)
insertXml targetXml Call(PutFormattedText)
Incr(c)
c 10 = !
while
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_WORD_XML | Zieldokument für diese Operation |
Top-1 |
CX_WORD_XML | CX_MULTIPLE_WORD_XML | CX_COM_OBJECT | CX_MULTIPLE_COM_OBJECT | |
Dokument, welches eingefügt werden soll. | |
Stack(Out) | Top |
Funktionsaufruf: Call(PutFormattedText)