zoukankan      html  css  js  c++  java
  • 页面中打开Word,在线浏览

    /// <summary>

    /// 为了通用,放到一个类文件中,别的也没直接调用
    /// </summary>
    /// <param name="fileName">得到上传的文件名字以及后缀名字</param>
    /// <param name="inFilePath">要打开文件的路径</param>
    /// <param name="ShowPath">生产静态页面的路径,以及一些别的文件</param>
    /// <param name="outDirPath">可以为空</param>
    /// <returns></returns>

    public static Tuple<string, string> Priview(string fileName, string inFilePath, string outDirPath = "")
    {
    object missingType = Type.Missing;
    object readOnly = true;
    object isVisible = false;
    object documentFormat = 8;
    //string randomName = DateTime.Now.ToString("yyyyMMddHHmmss");
    string randomName = fileName.Remove(fileName.LastIndexOf("."));
    object htmlFilePath = outDirPath + randomName + ".html";
    string directoryPath = outDirPath + randomName + "_files";

    object filePath = inFilePath;
    //Open the word document in background

    ApplicationClass applicationclass = new ApplicationClass();
    applicationclass.Documents.Open(ref filePath,
    ref readOnly,
    ref missingType, ref missingType, ref missingType,
    ref missingType, ref missingType, ref missingType,
    ref missingType, ref missingType, ref isVisible,
    ref missingType, ref missingType, ref missingType,
    ref missingType, ref missingType);
    applicationclass.Visible = false;
    Document document = applicationclass.ActiveDocument;

    //Save the word document as HTML file
    document.SaveAs(ref htmlFilePath, ref documentFormat, ref missingType,
    ref missingType, ref missingType, ref missingType,
    ref missingType, ref missingType, ref missingType,
    ref missingType, ref missingType, ref missingType,
    ref missingType, ref missingType, ref missingType,
    ref missingType);

    //Close the word document
    document.Close(ref missingType, ref missingType, ref missingType);
    KillPreviewWordProcess();
    return new Tuple<string, string>(randomName, htmlFilePath.ToString());
    }
    /// <summary>
    /// 关闭所有用于预览的Word后台进程
    /// </summary>
    public static void KillPreviewWordProcess()
    {
    //Process.GetProcessesByName("WINWORD").ToList().Where(pro => string.IsNullOrWhiteSpace(pro.MainWindowTitle)).ToList().ForEach(nullPro => nullPro.Kill());
    Process[] wordProcess = Process.GetProcessesByName("WINWORD");
    try
    {
    foreach (Process pro in wordProcess)
    {
    string mwt = pro.MainWindowTitle;
    if (string.IsNullOrWhiteSpace(mwt))
    {
    pro.Kill();
    }
    }
    }
    catch
    {
    }
    }

    页面中使用

    Tuple<string, string> tupleW = WordPreview.Priview(this,get_Name, filePath, outputDirPath);
    DName = tupleW.Item1.ToString();
    JspUtility.OpenWindow("./Html/" + fileNameWithNoExt.ToString() + ".html", "", "1366", "768", UpdatePanel1);//路径生产静态页面的路径,注意

  • 相关阅读:
    【WCF】无废话WCF入门教程
    【IIS8】在IIS8添加WCF服务支持
    iOS 中如何将View设置为圆角的矩形?
    在iOS开发中使用FMDB
    iOS中FMDB的使用【单例】
    普通分页笔记
    基础BaseDao
    连接池技术 实现的四个要素:jdbc.properties配置- 读取配置的单例类 --ConfigManage--BaseDao写法
    反射生成对象,调用对象方法
    context分页
  • 原文地址:https://www.cnblogs.com/yan-xue-biao/p/3841038.html
Copyright © 2011-2022 走看看