Hi ho,
Wir haben eine Anwendung mit der der Anwender Word-Dokumente als PDF erzeugen und verschicken kann. Derzeit sind die word2000-Komponenten in Delphi 2010 im Einsatz; soweit ich weiß sind in Delphi 2010 auch die XP-Komponenten enthalten, die sind bei uns allerdings bislang nicht installiert. Für den Export wird ein entsprechender PDF-Druckertreiber verwendet.
Nun wollen wir gerne den Kunden, die bereits über ein modernes Office verfügen mit eingebautem PDF-Export, bei uns geht das mit Word 2010, die Möglichkeit geben ohne Druckertreiber zu exportieren. Leider haben die word2000-Kompos natürlich keine entsprechenden Methoden (.exportAsFixedFormat). Im Internet hab ich mir allerdings was zusammengegoogelt, das ohne die Word2000-Komponenten funzt (dort hat das wohl jemand sogar unter Delphi 2 zum Laufen gebracht

)
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| procedure ConvertDocToPdf(const Filename: string; DestFileName: string); const wdExportFormatPDF = 17; wdExportOptimizeForPrint = 0; wdExportAllDocument = 0; wdExportDocumentContent = 0; wdExportCreateNoBookmarks = 0; var ObjWord, ObjDoc: Variant; EmptyParam: OleVariant; begin ObjWord := CreateOleObject('Word.Application'); ObjWord.Visible := false; ObjDoc := ObjWord.Documents.Open(FileName); ObjDoc.ExportAsFixedFormat( DestFileName, wdExportFormatPDF, False, wdExportOptimizeForPrint, wdExportAllDocument, 1, 1, wdExportDocumentContent, true, true, wdExportCreateNoBookmarks, true, true, false ); ObjWord.Quit; ObjWord := Unassigned; end; |
Das funktioniert soweit auch gut! Nur erfordert es halt den Dateinamen. Unser Projekt ist aber wie gesagt voll auf word2000 eingestellt, ich bräuchte also entsprechend eine Funktion die statt des Dateinamens "tWordDocument" entgegennimmt, und das dann exportiert. Also wie macht (castet) man aus einem tWordDocument ein wie oben erzeugtes Variant. Bzw. geht das überhaupt?