AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Office 2007 mit OLE als PDF speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Office 2007 mit OLE als PDF speichern

Ein Thema von GeraldK · begonnen am 16. Jun 2009 · letzter Beitrag vom 17. Jun 2009
Antwort Antwort
GeraldK

Registriert seit: 9. Nov 2005
11 Beiträge
 
Delphi 2 Client/Server
 
#1

Office 2007 mit OLE als PDF speichern

  Alt 16. Jun 2009, 10:01
Hallo,

ich arbeite mit Delphi 2 und möchte eine MS-WORD Datei speichern, was soweit ganz gut funktioniert.

Allerdings möchte ich dazu die "neue" Funktion von MS-Word 2007 SPEICHERN UNTER PDF verwenden.
Zwar habe ich dazu im Forum einige Vorschläge gefunden, jedoch gelten diese offensichtlich nicht für Delphi 2.

Das MS-WORD Dokument speichere ich mit folg. Befehl:
ObjWord.FileSaveAs('c:\test\msword.doc');

Mit der Dateiextension '.pdf' klappt es leider nicht.

Ich möchte die konvertierte MS-WORD Datei NICHT mittels eines PDF-Creators ausdrucken.


Besten Dank für Eure Hilfe !

Grüße
Gerald
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#2

Re: Office 2007 mit OLE als PDF speichern

  Alt 16. Jun 2009, 10:38
Hallo Gerald

Zeichne mal ein Macro auf. Dann siehst du, wie der Code sein sollte.
  Mit Zitat antworten Zitat
GeraldK

Registriert seit: 9. Nov 2005
11 Beiträge
 
Delphi 2 Client/Server
 
#3

Re: Office 2007 mit OLE als PDF speichern

  Alt 16. Jun 2009, 10:55
Hallo API,

danke für den raschen Tip, aber wie kann ich die Parameter defieren, die hier übergeben werden:

sDateiname := 'c:\test.pdf';

ObjWord.ActiveDocument.ExportAsFixedFormat.OutputF ileName := sDateiName,
ExportFormat :=wdExportFormatPDF,
OpenAfterExport :=False,
OptimizeFor :=wdExportOptimizeForPrint,
Range:=wdExportAllDocument, From:=1, To:=1,
Item:=wdExportDocumentContent,
IncludeDocProps:=True,
KeepIRM:=True,
CreateBookmarks:=wdExportCreateNoBookmarks,
DocStructureTags:=True, _
BitmapMissingFonts:=True,
UseISO19005_1:=False;

Erhalte Syntaxerror bei Semicolon von sDateiName (END erwartet aber ',' gefunden).

Auch habe ich folg. Syntax probiert:

ObjWord.ActiveDocument.ExportAsFixedFormat
(OutputFileName := sDateiName,
ExportFormat :=wdExportFormatPDF,
OpenAfterExport :=False,
OptimizeFor :=wdExportOptimizeForPrint,
Range:=wdExportAllDocument, From:=1, To:=1,
Item:=wdExportDocumentContent,
IncludeDocProps:=True,
KeepIRM:=True,
CreateBookmarks:=wdExportCreateNoBookmarks,
DocStructureTags:=True,
BitmapMissingFonts:=True,
UseISO19005_1:=False);

Nun meckert Delphi wegen der nicht vorhandenen Variablen wdExportFormatPDF, etc.
Welches Format (string, etc.) gehört hier definiert, bzw. zugewiesen.


Nun habe ich die Variablen wdExportFormatPDF etc. gegen fixe Werte ausgetauscht, und zumindest kann ich das Programm kompilieren.
Aber beim Testen erhalte ich dann die Meldung "Exception der Klasse EOleError: Methode ActiveDocument wird vom OLE-Object nicht unterstützt".
Soweit ich mich erinnere, arbeitet Delphi 2 mit OLE 2.0.

Was könnte ich noch ändern, oder scheitert jeder Versuch an OLE 2.0 ??

Danke für Eure Hilfe !

Gerald
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Office 2007 mit OLE als PDF speichern

  Alt 16. Jun 2009, 18:13
ungetestet:

Delphi-Quellcode:
procedure ConvertDocToPdf(const Filename: string; DestFileName: string);
const
  wdExportFormatPDF = 17;
  wdExportOptimizeForPrint = 0;
var
  ObjWord, ObjDoc: Variant;
  EmptyParam: OleVariant;
begin
  ObjWord := CreateOleObject('Word.Application');
  ObjWord.Visible := True;
  ObjDoc := ObjWord.Documents.Open(FileName);
  ObjDoc.ExportAsFixedFormat(
    DestFileName,
    wdExportFormatPDF,
    False, // OpenAfterExport
    wdExportOptimizeForPrint, // OptimizeFor
    EmptyParam, // etc.
    EmptyParam,
    EmptyParam,
    EmptyParam,
    EmptyParam,
    EmptyParam,
    EmptyParam,
    EmptyParam,
    );
  ObjWord.Quit;
  ObjWord := Unassigned;
end;
Thomas
  Mit Zitat antworten Zitat
GeraldK

Registriert seit: 9. Nov 2005
11 Beiträge
 
Delphi 2 Client/Server
 
#5

Re: Office 2007 mit OLE als PDF speichern

  Alt 17. Jun 2009, 11:01
Hallo Toms,

vielen Dank für Deine Hilfestellung.

In Delphi 2 erhalte ich beim Compilieren den Hinweis, dass der Typ der Variable Emptyparam mit OLEVariant nicht erkannt wird.
Nun habe ich diese gegen Konstanten beim Aufruf der Procedure mit Wert 0 geändert, UND ES FUNKTIONIERT !!!


Vielen Dank nochmals !

Liebe Grüße
Gerald
  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 16:17 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