標籤:style 使用 檔案 os for cti
/// <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);//路徑生產靜態頁面的路徑,注意