2011-01-07 19 views
2

メールのテキストを格納するOutlook07のアドインを作成中です。 とその添付ファイルは別々のPDFファイルに保存してください。もちろんこれは合理的な添付ファイルのためだけであり、zipファイルなどには意味がありません。Outlook電子メールのすべての添付ファイルをPDFに変換する

すべてのファイルが一時ディレクトリ(各メール)に格納されています。メール 自体は簡単に変換されますが、添付ファイルに問題があります。

アイデアは、それぞれの対応するオフィスinteropからexportAsメソッドを使用することです。したがって、クライアントPCに追加ソフトウェアをインストールする必要はありません。

それぞれのファイルを対応するオフィスアプリケーションでエクスポートするには、まずそのファイルを開くことができるオフィスアプリケーションを見つけなければなりません。確かに、心に来る最初の事は拡張子を試したが、いくつかのより効率的な方法が存在しなければならないされ、その後

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

私は、MSDNのドキュメンテーションで何かを見つけるとGoogleしようとしたが、Office.Interopsは です本当に私は今どこにいるのか、すでに難しくなっています。上記の意味で 文書を開くことはどこにも含まれていません。

すべてのヒントは私を本当に幸せにするでしょう。それは格好良いです

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; 

: - 成功への道

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; 

EDIT: -

EDIT次は私がWord文書を変換する方法の例です。 Thxは、週末に始めるのに最適な方法です。

答えて

2

レジストリを使用して、どのアプリケーションが拡張機能に関連付けられているかを調べることをお勧めします。あなたは、このリンクを見ている場合:

Script to associate an extension to a program

をレジストリにあなたが見る必要がある場所には示しています。

+0

あなたはWordを開くという私の意味を誤解しているかもしれません。 Word.Applicationでアプリケーションを「開く」wordApp = new Word.Application();次にwordApp.Open(xxxxx); – TiGoRn

+0

おそらく私が言ったとき、あなたが「拡張機能を試していますが、もっと効率的なやり方が必要です」と言ったときに、指定した拡張子を持つファイルを開いたアプリケーション。 –

+0

私は、拡張機能とオフィスアプリケーションとの間のレジストリ関係のマッピングを作成し、どのinterop.appでファイルを開くかを決定する方法があると思います。 – TiGoRn

関連する問題