首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

word转html解决办法

2013-11-29 
word转html做了一个word转html的页面,使用office组件做的,本地调试没问题,部署到iis上本地也没问题,别人的

word转html
做了一个word转html的页面,使用office组件做的,本地调试没问题,部署到iis上本地也没问题,别人的电脑上传word过来的时候我电脑就跳出这个东西了,这个要怎么解决???(这个我手动选择后程序可以继续下去,没问题)
word转html解决办法 word html wod转html
[解决办法]
改用线程


<%@ WebHandler Language="C#" Class="ajaxWordToHtml" %>

using System;
using System.Web;
using System.Threading;


public class ajaxWordToHtml : IHttpHandler
{

    private static object _lock = new object();
    string docPath = string.Empty;
    string htmlPath = string.Empty;
    bool Flang = false;
    string Message = string.Empty;

    [?STAThread]
    private void _Import()
    {



        object o = Type.Missing;

        try
        {

            Word.Application app = new Word.Application();
            app.Visible = false;


            object docFile = docPath;
            object readOnly = true;
            object fileName = htmlPath;


            /*office 2003 begin
            Word.Document doc = app.Documents.Open(ref docFile, ref o, ref readOnly, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o);
            object format = Word.WdSaveFormat.wdFormatFilteredHTML;
            doc.SaveAs(ref fileName, ref format, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o);
            //office 2003 end*/

            //* offic 2000 begin


            Word.Document doc = app.Documents.Open(ref docFile, ref o, ref readOnly, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o);
            object format = Word.WdSaveFormat.wdFormatHTML;
            doc.SaveAs(ref fileName, ref format, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o);
            doc.Close(ref o, ref o, ref o);
            app.Quit(ref o, ref o, ref o);

            //*/

            //WordToHtml.ConvertToHtml(docPath, htmlPath);
            Flang = true;
            Message = "已成功生成!";
            return;
        }
        catch (Exception error)
        {
            Flang = false;
            Message = error.Message;


            return;
        }
        finally
        {
            GC.Collect();
        }
    }

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/html";
        docPath = HttpContext.Current.Request["docPath"];
        htmlPath = HttpContext.Current.Request["htmlPath"];
        if (!string.IsNullOrEmpty(docPath) && !string.IsNullOrEmpty(htmlPath))
        {
            lock (_lock)
            {


                docPath = HttpContext.Current.Server.MapPath("/docfile/" + docPath);
                htmlPath = HttpContext.Current.Server.MapPath("/htmlfile/" + htmlPath);
             ?Thread _thread = new Thread(new ThreadStart(_Import));
              _thread.Name = "ajaxWordToHtml";
              _thread.SetApartmentState(ApartmentState.STA);
              _thread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
              _thread.Start();
              TimeSpan ts = new TimeSpan(0, 0, 0, 30);
              _thread.Join();
              context.Response.Write(Flang);
              context.Response.Write(Message);
            }
        }
        else
        {
            Flang = false;
            Message = "提交的参数不正确";
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}

热点排行