您的位置:首页 > 编程语言 > C#

c#调用cmd命令,将doc转换为 pdf

2017-02-17 12:14 375 查看
http://blog.csdn.net/pukuimin1226/article/details/7841678

版权声明:作者:真爱无限 出处:http://blog.csdn.net/pukuimin1226 本文为博主原创文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接.

[csharp] view
plain copy

 print?

c#调用cmd命令,将doc转换为 pdf  

[csharp] view
plain copy

 print?

   

[csharp] view
plain copy

 print?

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和内存。。。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: