c#调用cmd命令,将doc转换为 pdf-阿里云开发者社区

开发者社区> 数据库> 正文

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

简介: c#调用cmd命令,将doc转换为 pdf   using System; using System.Collections.Generic; using System.
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和内存。。。

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章