2011-01-07 71 views
2

我正在編寫一個Outlook07加載項,它應該將電子郵件 及其所有附件的文本存儲在單獨的pdf文件中。當然這只是爲了合理的附件,對於zip文件等是沒有意義的。將Outlook電子郵件的所有附件轉換爲PDF

我已經達到了將所有文件存儲在臨時目錄(針對每封郵件)的程度。郵件 本身很容易轉換,但我遇到附件有問題。

想法是從每個相應的辦公室interop使用exportAs方法,所以我不必在客戶端電腦上安裝aditional軟件。

要導出每個文件及其相應的辦公應用程序,首先必須找出哪個辦公應用程序可以打開它。當然,想到的第一件事就是嘗試擴展名,但必須有一些更有效的方式,然後

if(fileExt == "doc" or "docx" or "wordformat i forgot") Open Word and Convert 
if(fileExt == "xls") Open Excel and Convert 

我試圖找到在MSDN單證的東西,谷歌,但Office.Interops是 真的很糟糕的文件記錄,這使得它已經很難得到我現在的位置。而在上述意義上開放 文件並不在任何地方。

任何暗示都會讓我真的很開心。

編輯 - 下面是例子,如何轉換我的Word文檔:

Word.Application wordApp = new Word.Application(); 
object oFilename = filename + ".html"; 
wordApp.Documents.Open(ref oFilename, x,x,x,x,x,x); 
wordApp.ActiveDocument.ExportAsFixedFormat(filename+".pdf", 
Word.WdExportFormat.wdExportFormatPDF,x,x,x,x,x); 
wordApp.ActiveDocument.Close(); 
wordApp.Close(); 
wordApp = null; 

編輯 - 成功之路:

var key = registry.ClassesRoot.OpenSubKey(Path.GetExtension(filename)); 
string openType = key.GetValue("").ToString().ToLower(); 

if(openType.StartsWith("word.")) return DocumentType.Word; 
if(openType.StartsWith("excel.")) return DocumentType.Excel; 

return DocumentType.Unusable; 

它看起來不錯。 Thx尋求幫助,開始進入週末的好方法。

回答

2

要做的最好的事情是使用註冊表來找出哪些應用程序與擴展關聯。如果你看看這個鏈接:

Script to associate an extension to a program

它顯示了在註冊表中,你需要尋找。

+0

你可能誤解了我打開Word的意思。我通過Word打開文檔。應用程序wordApp = new Word.Application();然後wordApp.Open(xxxxx); – TiGoRn 2011-01-07 13:14:01

相關問題