AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Word über OLE funktioniert nicht wenn aus Dienst aufgerufen
Thema durchsuchen
Ansicht
Themen-Optionen

Word über OLE funktioniert nicht wenn aus Dienst aufgerufen

Ein Thema von sbraun71 · begonnen am 8. Feb 2014 · letzter Beitrag vom 9. Feb 2014
Antwort Antwort
sbraun71

Registriert seit: 28. Feb 2005
10 Beiträge
 
Delphi 3 Professional
 
#1

Word über OLE funktioniert nicht wenn aus Dienst aufgerufen

  Alt 8. Feb 2014, 10:12
Hallo zusammen,

ich habe ein Kommando-Zeilen Programm geschrieben, dass rtf-Dateien mit Hilfe von Word in ein pdf umwandelt.

Dies funktioniert grundsätzlich. Das Problem ist, wenn das Programm aus einem Programm das als Dienst läuft aufgerufen wird.

Die Funktion:
Delphi-Quellcode:
function rtf2pdf(const verzeichnis: String; const datei: String;
  var log: TStringList): boolean;
const
  wdExportFormatPDF = 17;
  wdDoNotSaveChanges = 0;
var
  Word, Doc: OleVariant;
  dateiname1, dateiname2: OleVariant;
begin
  Result := false;
  dateiname1 := verzeichnis + datei + '.rtf';
  dateiname2 := verzeichnis + datei + '.pdf';
  log.Add('Create OLE Object');
  Word := CreateOLEObject('Word.Application');
  log.Add('Open Document');
  Doc := Word.Documents.Open(dateiname1);
  log.Add('Export as pdf');
  Doc.ExportAsFixedFormat(dateiname2, wdExportFormatPDF); //Hier kommt die Exception (EVariantInvalidOpError)
  log.Add('Close');
  Word.Quit(wdDoNotSaveChanges);
  log.Add('Done');
  Result := true;
end;
Läuft das Host-Programm nicht als Dienst funktioniert das Programm fehlerfrei und generiert das pdf.

Nur aus dem Dienst kommt folgende Exception:
Exception Message: Ungültige Variantenoperation
Exception ClassName: EVariantInvalidOpError

Entwicklungsumgebung: Delphi XE

Server: Windows 2008 R2 und Word 2010.

Hat mir jemand einen Tipp oder Lösungsansatz?

Vielen Dank und Grüsse

Stefan
  Mit Zitat antworten Zitat
sbraun71

Registriert seit: 28. Feb 2005
10 Beiträge
 
Delphi 3 Professional
 
#2

AW: Word über OLE funktioniert nicht wenn aus Dienst aufgerufen

  Alt 9. Feb 2014, 14:12
Hallo zusammen,

Der Fehler scheint nicht so offensichtlich zu sein. Ich denke aber, dass es mit der Word-Installation zusammenhängt.

Kennt jemand eine Komponente die es ermöglicht rtf in pdfs umzuwandeln ohne auf Word angewiesen zu sein.

Vielen Dank und Grüsse

Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Word über OLE funktioniert nicht wenn aus Dienst aufgerufen

  Alt 9. Feb 2014, 15:31
Mit der Installation hat es nichts zu tun, sondern damit, dass Word einen aktiven Desktop benötigt.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
hstreicher

Registriert seit: 21. Nov 2009
220 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Word über OLE funktioniert nicht wenn aus Dienst aufgerufen

  Alt 9. Feb 2014, 19:01
im Prinzip doch ganz einfach

RTF also Richedit drucken, und als Drucker einen PDF Drucker verwenden


http://www.delphipraxis.net/139544-r...t-drucken.html

oder TRichview

hth Hannes
  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 21:24 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