http://blog.youkuaiyun.com/pukuimin1226/article/details/7841678
版权声明:作者:真爱无限 出处:http://blog.youkuaiyun.com/pukuimin1226 本文为博主原创文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接.
- c#调用cmd命令,将doc转换为 pdf
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Diagnostics;
- namespace Tools
- {
- /// <summary>
- /// doc文件转换为pdf文件
- /// </summary>
- public class DocToPdf
- {
- private string savePath = "";
- /// <summary>
- /// doc文件路径,包括完整文件名
- /// </summary>
- public string docFile;
- /// <summary>
- /// ConvertDoc2PDF.js目录,不包括文件名
- /// </summary>
- public string jsPath;
- /// <summary>
- /// 接收的cmd运行的结果
- /// </summary>
- public string sExecResult = "";
- /// <summary>
- /// 是否成功
- /// </summary>
- public bool bSuccess = false;
- /// <summary>
- ///
- /// </summary>
- /// <param name="sDocFile">源doc路径,包括文件名</param>
- /// <param name="sPdfPath">目的pdf目录</param>
- public DocToPdf(string sDocFile, string sPdfPath)
- {
- docFile = sDocFile;
- savePath = sPdfPath;
- }
- /// <summary>
- /// 开始转换
- /// </summary>
- public void StartConvertPDF()
- {
- Process proc = new Process();
- proc.StartInfo.FileName = "cmd.exe";
- proc.StartInfo.WorkingDirectory = jsPath;
- proc.StartInfo.CreateNoWindow = true;
- proc.StartInfo.UseShellExecute = false;
- proc.StartInfo.RedirectStandardInput = true;//标准输入重定向
- proc.StartInfo.RedirectStandardOutput = true;//标准输出重定向
- proc.Start();
- proc.StandardInput.WriteLine("cscript //nologo "+jsPath+"ConvertDoc2PDF.js "+docFile+" "+savePath);
- //proc.StandardInput.WriteLine("exit");
- sExecResult = proc.StandardOutput.ReadToEnd();//返回脚本执行的结果
- proc.WaitForExit();
- proc.Close();
- }
- /// <summary>
- /// 转换完成后的回调函数
- /// </summary>
- /// <param name="ar">IAsyncResult对象</param>
- public void EndConvertPDF(System.IAsyncResult ar)//ar参数必须写,是线程执行完成后的回调函数
- {
- if (sExecResult.IndexOf("isuccess") != -1) bSuccess = true;
- else if (sExecResult.IndexOf("isfail") != -1) bSuccess = false;
- //如果放在B/S系统,你可以在此处写数据库,是成功还是失败,并用一个WEBService程序不断检查数据库,此WEBService程序不放在该回调用函数中
- //如果放在C/S系统,回调函数可以不放在类中,以便在窗体程序中调用结果
- }
- }
- }
要安装软件环境,转换时似乎很费cpu和内存。。。