AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein RichEdit.Text in Word-Document übertragen
Thema durchsuchen
Ansicht
Themen-Optionen

RichEdit.Text in Word-Document übertragen

Ein Thema von Ralf Stehle · begonnen am 17. Jan 2007 · letzter Beitrag vom 17. Jan 2007
Antwort Antwort
Ralf Stehle

Registriert seit: 8. Aug 2003
124 Beiträge
 
Delphi 7 Professional
 
#1

RichEdit.Text in Word-Document übertragen

  Alt 17. Jan 2007, 16:18
Wenn ich RichEdit.Text in Word-Document übertragen erhalte ich nur den unformatierten Text.
Gibt es eine Möglichkeit, den Text mit allen Formatierungen in ein Word-Document zu übertragen? Da ich den RichEdit.Text mit einer Textmarke mitten in ein Dokument einfügen möchte, ist der Weg über Abspeichern als Datei nicht möglich

Folgender Code ergibt leider nur unformatierten Text im Word-Document:

Delphi-Quellcode:
With WordApplication1.Selection do begin
  vBookmark:='Textmarke1'; vWhat:=wdGotoBookmark;
  RichEdit1.PlainText := False;
  TypeText(RichEdit1.Text);
end
Ralf Stehle
ralfstehle@yahoo.de
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: RichEdit.Text in Word-Document übertragen

  Alt 17. Jan 2007, 18:28
Hallo Ralf,

ich habe jetzt keinen Zugriff auf Word, aber wie soll das mit TypeText() funktionieren? Selbst wenn du als String-Parameter einen RTF-String übergeben würdest, dürfte das Ergebnis lediglich RTF-Code im Klartext sein. Ich würde den Text über das ClipBoard austauschen. PasteSpecial() mit dem Parameter wdPasteRTF anstelle von TypeText() sollte das gewünschte Ergebnis bringen. Unschön dabei ist die Verseuchung der Windows-Zwischenablage. Da müsste man sich eventuell noch mit der Office-Zwischenablage auseinandersetzen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Ralf Stehle

Registriert seit: 8. Aug 2003
124 Beiträge
 
Delphi 7 Professional
 
#3

Re: RichEdit.Text in Word-Document übertragen

  Alt 17. Jan 2007, 18:49
Danke für den Tipp. Ich habe auch eine Lösung mit einem Stream versucht, aber den kann ich wahrscheinlich auch nicht direkt einem Worddokument übergeben.

Gibt es als Alternative auch die Möglichkeit, die Formatierung Schritt für Schritt aus dem RichEdit auszulesen und dann den Text mitsamt der Formatierungen mit Hilfe der WordApplication-Anweisungen
Delphi-Quellcode:
WordApplication1.Selection.Font.Name := 'Arial';
WordApplication1.Selection.Font.Bold:=integer(True);
WordApplication1.Selection.Font.Size:= ...
WordApplication1.Selection.TypeText ...
in das Word-Dokument hineinzuschreiben ?

Ralf
Ralf Stehle
ralfstehle@yahoo.de
  Mit Zitat antworten Zitat
Ralf Stehle

Registriert seit: 8. Aug 2003
124 Beiträge
 
Delphi 7 Professional
 
#4

Re: RichEdit.Text in Word-Document übertragen

  Alt 17. Jan 2007, 19:10
Ich habe es mit einem einfachen WordApplication.Paste versucht, das funktioniert ja ganz einfach.

Delphi-Quellcode:
RichEdit1.SelectAll;
RichEdit1.CutToClipboard;
WordApplication1.Connect;
WordApplication1.Visible := true;
WordApplication1.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
WordApplication1.Selection.Paste;
WordApplication1.Disconnect;
Wie PasteSpecial aufgerufen wird, habe ich nicht herausgefunden
(in einem Word-Makro sieht das so aus:
Selection.WholeStory
Selection.PasteSpecial Link:=False, DataType:=20,
Placement:=wdInLine, DisplayAsIcon:=False)

ob PasteSpecial aber überhaupt Vorteile bietet, ist mir nicht klar. Was meinst Du mit "Verseuchung" der Zwischenablage eigentlich?

Ralf
Ralf Stehle
ralfstehle@yahoo.de
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: RichEdit.Text in Word-Document übertragen

  Alt 17. Jan 2007, 19:39
Paste() nimmt aus mehreren angebotenen Clip-Formaten dasjenige mit dem höchsten Rang. Kann schon gut sein, dass Word da RTF dankbar auswählt.

Mit Verseuchung meine ich den Verstoß gegen die Regel, dass die Zwischenablage nur interaktiv (vom Programmbenutzer) verwendet werden sollte. Es kann ja sonst leicht vorkommen, dass dieser einen wichtigen Text ausgeschnitten hat und der ist dann weg, wenn dein Programm loslegt.

Freundliche Grüße
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz