我正在编写一个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寻求帮助,开始进入周末的好方法。
你可能误解了我打开Word的意思。我通过Word打开文档。应用程序wordApp = new Word.Application();然后wordApp.Open(xxxxx); – TiGoRn 2011-01-07 13:14:01