Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   MS: Word Dokument bearbeiten und anschließend mit Outlook HTML-Mailbody senden (https://www.delphipraxis.net/206231-ms-word-dokument-bearbeiten-und-anschliessend-mit-outlook-html-mailbody-senden.html)

tom1 1. Dez 2020 19:55

Delphi-Version: 5

MS: Word Dokument bearbeiten und anschließend mit Outlook HTML-Mailbody senden
 
Guten Abend allerseits.

WORD öffnen und Inhalt importieren geht schon mal:

begin
try
WordApp := GetActiveOleObject('Word.Application');
except
WordApp := CreateOleObject('Word.Application') ; end;

// WordApp.visible := true;
WordApp.DisplayAlerts := False;

WordDocument := WordApp.Documents.Open('irgendwas.docx', true, false);

WordDocument.range.copy;

sleep(1000);//Otherwise it fails
RichEdit1.Clear;
RichEdit1.PasteFromClipboard;


WordDocument.close;
WordApp.Quit;
WordApp := Unassigned;
end.

Zu Testzwecken einfach in ein TRichEdit kopiert.

Versendet wird über:

try
Outlook := GetActiveOleObject('Outlook.Application');
except
Outlook := CreateOleObject('Outlook.Application');
end;
vMailItem := Outlook.CreateItem(olMailItem);
vMailItem.Recipients.Add(Edit_Mail.Text);

... and so on.


Nun zu den beiden Fragen:
Welcher Editor eignet sich jetzt anstatt TRichedit für das Bearbeiten des Inhalts der WORD Datei?
Es sollte wohl ein HTML-Editor sein - da gibt es einige Hyperlinks. Die sollen nachher einfach anklickbar sein. TRichedit reisst die halt auseinander.
Und wie wird mit der o.g. Methode dieser Inhalt an den Outlook HTML Mailbody übergeben?

Vielleicht seh ich auch grad den Wald vor lauter Weihnachtsbäumen nicht.

Vielen Dank schon mal.

Thomas

Papaschlumpf73 1. Dez 2020 20:51

AW: MS: Word Dokument bearbeiten und anschließend mit Outlook HTML-Mailbody senden
 
Klingt vielleicht doof - ist aber so: Am besten eignet sich Word für die Bearbeitung von Word-Dateien. Hier nur mal ein paar Varianten, wie man das machen könnte - es gibt aber noch viel mehr:

Variante 1: Datei in Word laden, in Word bearbeiten, in Word kopieren, in E-Mail einfügen.

Variante 2: Datei in Word laden, alles kopieren und ohne Umwege in neue Mail einfügen. Dann den E-Mail-Editor von Outlook anzeigen.

Variante 3: Word als "OLE-Object/Container" (wie heißt das richtig?) ins Delphi-Programm einbinden. Dann hast du quasi einen Word-Editor auf einem Delphi-Formular.

BerndS 1. Dez 2020 21:02

AW: MS: Word Dokument bearbeiten und anschließend mit Outlook HTML-Mailbody senden
 
Variante 4: mit Word als "OLE-Object/Container" die Datei laden, dann SaveAs im HTML-Format und dies wird dann als Body verwendet.

tom1 1. Dez 2020 23:31

AW: MS: Word Dokument bearbeiten und anschließend mit Outlook HTML-Mailbody senden
 
Danke Bernd,

OleContainer.LoadFromFile hat einen Fehler ausgespuckt - liegt wohl am Dateiformat.
OleContainer.CreateObjectFromFile läuft.

Ich find jetzt nichts Brauchbares dazu wie dieses Objekt nun dem HTML Mailbody übergeben werden könnte - zumindest nicht auf die Art wie ich das bis jetzt gemnacht hatte.

Hättest Du da freundlicherweise noch mal nen Tipp für mich?

LG,
Thomas

BerndS 2. Dez 2020 07:28

AW: MS: Word Dokument bearbeiten und anschließend mit Outlook HTML-Mailbody senden
 
Habe es nicht getestet, aber ich würde die Htm-Datei in eine TStringlist laden und dem MailItem den Text zuweisen.

Delphi-Quellcode:
...
  SL.LoadFromFile(FileName, TEncoding.UTF8);
  MailItem.HTMLBody := SL.Text;
...

jziersch 2. Dez 2020 09:41

AW: MS: Word Dokument bearbeiten und anschließend mit Outlook HTML-Mailbody senden
 
Zitat:

Zitat von tom1 (Beitrag 1478349)
Welcher Editor eignet sich jetzt anstatt TRichedit für das Bearbeiten des Inhalts der WORD Datei?
Es sollte wohl ein HTML-Editor sein - da gibt es einige Hyperlinks. Die sollen nachher einfach anklickbar sein. TRichedit reißt die halt auseinander.
Und wie wird mit der o.g. Methode dieser Inhalt an den Outlook HTML Mailbody übergeben?

WPTools mit der optionalen DocX Unterstützung kann dies erledigen. Du kannst die DocX dort direkt laden, bearbeiten (z.b. mit mail merge) und einen HTML string dann abrufen über

s := WPRichText.AsANSIString( 'HTML-alwaysembed' );

Hyperlinks werden unterstützt. Die Qualität des Ergebnisses hängt von dem Eingabe Dokument ab. Word unterstützt eine Menge Dinge die in HTML nicht gehen. Tabstops, Seitenumbrüche, Kopf- und Fusszeilen etc. Für echte Dokumente bietet sich daher PDF an.

NoName1 2. Dez 2020 19:05

AW: MS: Word Dokument bearbeiten und anschließend mit Outlook HTML-Mailbody senden
 
Ich benutze für den Versand von E-Mails, WPTOOLS und ich kann sagen, alle E-Mails, auch die mit Images, werden korrekt
versandt. Bin vollauf zufrieden mit WPTools, zumal ich auch *.DOC-Dateien laden und bearbeiten kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 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