我是一个马甲,没办法,分不够了,只好这样了:)
我想问的就是一个进程将HTML代码转换成word文档保存到客户端和服务器端的问题。
其实这个问题思归大哥给出了答复,可是我本来很菜,e文又不好,捣鼓了半天还是没搞定,思归大哥给的文章链接如下:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q325791我的代码如下,是马甲大哥和孟子大哥给的:以下代码怎么运行的时候说是:未处理的“System.UnauthorizedAccessException”类型的异常出现在 未知模块 中。
其他信息: 拒绝访问。
然后又跳出一个对话框:没有用于当前位置的源代码。怎么回事呢?新建一个类(这是马甲大哥给我的代码,谢谢了!):
using System;
using System.Windows.Forms;namespace Test
{
    public class SaveAsDoc
    {
      public string htmlstr="<b>html</b>";
      [STAThread]
      public void Save()
      {
Word.ApplicationClass oWordApp = new Word.ApplicationClass();
object missing=System.Reflection.Missing.Value;
object path=@"c:\q.doc";//改成你自己要保存的路径
try
{
   string ClipTemp="Version:0.9\nStartHTML:-1\nEndHTML:-1\nStartFragment:000076\nEndFragment:000128\n<!DOCTYPE>\n<HTML><BODY>{0}</BODY></HTML>";
   ClipTemp=string.Format(ClipTemp,htmlstr);
   DataObject d=new DataObject();
   d.SetData(DataFormats.Html,true,ClipTemp);
   Clipboard.SetDataObject(d);
   Word.Document oWordDoc = oWordApp.Documents.Add(ref missing, ref missing,ref missing, ref missing);
   oWordDoc.Activate();
   oWordApp.Selection.Paste();
   oWordDoc.SaveAs(ref path,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing);
}
catch(Exception err)
{
   throw err;
}
finally
{
   oWordApp.Application.Quit(ref missing, ref missing, ref missing);  
}
      }
   }
}
在WebPage B.aspx的保存按钮事件里这样调用:
private void Button2_Click(object sender, System.EventArgs e)
{
   SaveAsDoc sd=new SaveAsDoc();
   sd.htmlstr=ConvertToString("B.aspx"); 
   System.Threading.Thread t=new System.Threading.Thread(new  System.Threading.ThreadStart(sd.Save));
   t.ApartmentState=ApartmentState.STA;
   t.Start();
}ConvertToString("B.aspx")是采用的孟子大哥的代码:
private string RenderPage(string pageLocation)
{
   System.Web.HttpContext context = System.Web.HttpContext.Current;
   StringBuilder result = new StringBuilder(1024);
   context.Server.Execute(pageLocation, 
   new HtmlTextWriter(new StringWriter(result)));
   return result.ToString();
}