我用C#开发一个网站,需要将上传的Word转换为Html存储起来,我的开发环境:xpSP3 vs2008 Office2003,在vs2008中调试可以通过,但是发布在本机的iis5.0上面进行测试时,却不能将上传的文件转换为htm,请问这是为什么?多谢!
我将Word转Html的代码如下:
class WordToHtml
{
public static void CreateWordToHtmlFile(string WordFileDir)
{
DealWithWordFile(WordFileDir);
}
//搜索WordFileDir在的*.doc文件
private static void DealWithWordFile(string WordFileDir)
{
//创建数组保存源文件夹下的文件名
string[] strFiles = Directory.GetFiles(WordFileDir, "*.doc");
for (int i = 0; i < strFiles.Length; i++)
{
WordToHtmlFile(strFiles[i]);
} DirectoryInfo dirInfo = new DirectoryInfo(WordFileDir);
//取得源文件夹下的所有子文件夹名称
DirectoryInfo[] ZiPath = dirInfo.GetDirectories();
for (int j = 0; j < ZiPath.Length; j++)
{
//获取所有子文件夹名
string strZiPath = WordFileDir + "\\" + ZiPath[j].ToString();
//把得到的子文件夹当成新的源文件夹,从头开始新一轮的搜索
DealWithWordFile(strZiPath);
}
}
//转化
private static void WordToHtmlFile(string WordFilePath)
{
try
{
Microsoft.Office.Interop.Word.Application newApp = new Microsoft.Office.Interop.Word.Application();
// 指定原文件和目标文件
object Source = WordFilePath;
string SaveHtmlPath = WordFilePath.Substring(0, WordFilePath.Length - 3) + "htm";
object Target = SaveHtmlPath; // 缺省参数
object Unknown = Type.Missing; //为了保险,只读方式打开
object readOnly = true; // 打开doc文件
Microsoft.Office.Interop.Word.Document doc = newApp.Documents.Open(ref Source, ref Unknown,
ref readOnly, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown); // 指定另存为格式(rtf)
object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML;
// 转换格式
doc.SaveAs(ref Target, ref format,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown); // 关闭文档和Word程序
doc.Close(ref Unknown, ref Unknown, ref Unknown);
newApp.Quit(ref Unknown, ref Unknown, ref Unknown);
}
catch (Exception e)
{
//System.Windows.Forms.MessageBox.Show(e.Message);
}
}
}
我将Word转Html的代码如下:
class WordToHtml
{
public static void CreateWordToHtmlFile(string WordFileDir)
{
DealWithWordFile(WordFileDir);
}
//搜索WordFileDir在的*.doc文件
private static void DealWithWordFile(string WordFileDir)
{
//创建数组保存源文件夹下的文件名
string[] strFiles = Directory.GetFiles(WordFileDir, "*.doc");
for (int i = 0; i < strFiles.Length; i++)
{
WordToHtmlFile(strFiles[i]);
} DirectoryInfo dirInfo = new DirectoryInfo(WordFileDir);
//取得源文件夹下的所有子文件夹名称
DirectoryInfo[] ZiPath = dirInfo.GetDirectories();
for (int j = 0; j < ZiPath.Length; j++)
{
//获取所有子文件夹名
string strZiPath = WordFileDir + "\\" + ZiPath[j].ToString();
//把得到的子文件夹当成新的源文件夹,从头开始新一轮的搜索
DealWithWordFile(strZiPath);
}
}
//转化
private static void WordToHtmlFile(string WordFilePath)
{
try
{
Microsoft.Office.Interop.Word.Application newApp = new Microsoft.Office.Interop.Word.Application();
// 指定原文件和目标文件
object Source = WordFilePath;
string SaveHtmlPath = WordFilePath.Substring(0, WordFilePath.Length - 3) + "htm";
object Target = SaveHtmlPath; // 缺省参数
object Unknown = Type.Missing; //为了保险,只读方式打开
object readOnly = true; // 打开doc文件
Microsoft.Office.Interop.Word.Document doc = newApp.Documents.Open(ref Source, ref Unknown,
ref readOnly, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown); // 指定另存为格式(rtf)
object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML;
// 转换格式
doc.SaveAs(ref Target, ref format,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown); // 关闭文档和Word程序
doc.Close(ref Unknown, ref Unknown, ref Unknown);
newApp.Quit(ref Unknown, ref Unknown, ref Unknown);
}
catch (Exception e)
{
//System.Windows.Forms.MessageBox.Show(e.Message);
}
}
}
解决方案 »
- C#初学者请教 怎么用XML遍历我的电脑
- System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置
- 考试系统C#
- C# gdi+绘图问题
- 写程序时候,需要大量的有一定风格的ICON 按钮图标,国内几个素材网站没什么东西,有没有国外的素材网站,推荐几个! 谢谢。
- 数据库主键设计的疑问,请大家帮忙解决??谢谢
- C#中字符串的问题:会的就请帮我一把了!!!!
- c# 中kill进程时有没有事件触发?
- 急急急!!!请教各位高手如何删除DataGrid中任意被选中的行
- dateTimePicker问题急~~~
- 数据绑定控件的写法问题!
- 怎么用用正则找出URL数据1
http://jeebillweng.ycool.com/post.2060509.html
运行-->dcomcnfg-->组件服务-->计算机-->我的电脑-->DCOM配置-->Microsoft Word 文档-->属性安全选项卡里,将前面两个权限改成自定义,里面添加everyone