![]() |
Office 2007 mit OLE als PDF speichern
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 |
Re: Office 2007 mit OLE als PDF speichern
Hallo Gerald
Zeichne mal ein Macro auf. Dann siehst du, wie der Code sein sollte. |
Re: Office 2007 mit OLE als PDF speichern
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 |
Re: Office 2007 mit OLE als PDF speichern
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; |
Re: Office 2007 mit OLE als PDF speichern
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz