引用 Microsoft Word 15.0 Object Library

using Microsoft.Office.Core;
using Microsoft.Office.Interop.Word;
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace word2pdf
{
    class Program
    {   
        static void OutputNullHandler(object sendingProcess, DataReceivedEventArgs outLine)
        {
            //Console.WriteLine(outLine.Data);
        }

//static void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
        //{
        //    String str = outLine.Data;
        //    if (str != null && str.Contains("动态"))
        //        Console.WriteLine(outLine.Data);
        //}

//WINWORD.EXE POWERPNT.EXE   有.EXE后缀
        static void KillProcess(String processName)
        {
            Process process = new Process();
            process.StartInfo.FileName = "taskkill";
            process.StartInfo.Arguments = "/f /im " + processName;
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardError = true;
            process.OutputDataReceived += new DataReceivedEventHandler(OutputNullHandler);
            process.ErrorDataReceived += new DataReceivedEventHandler(OutputNullHandler);
            process.Start();
            process.BeginOutputReadLine();
            process.BeginErrorReadLine();
            process.WaitForExit();
        }

public static bool word2PDF(string sourcePath, string targetPath)
        {
            KillProcess("WINWORD.EXE");
            bool result = false;
            Application application = new Application();
            Document document = null;
            try{                
                document = application.Documents.Open(sourcePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);                
                document.SaveAs(targetPath, WdSaveFormat.wdFormatPDF);
                result = true;
            }
            catch (Exception e){
                Console.WriteLine("Error " + e.Message);
                result = false;
            }
            finally
            {                
                if (document != null)
                {
                    try{
                        document.Close();                        
                    }
                    catch (Exception e){                        
                        result = false;
                    }
                    try{
                        Marshal.ReleaseComObject(document);
                    }
                    catch (Exception e){                    
                        result = false;
                    }
                    document = null;
                }
                if (application != null)
                {
                    try{
                        application.Quit();
                    }
                    catch (Exception e){
                        result = false;
                    }
                    try{
                        Marshal.ReleaseComObject(application);
                    }
                    catch (Exception e){
                        result = false;
                    }                    
                    application = null;
                }
                if (!result)
                    KillProcess("WINWORD.EXE");
                //主动激活垃圾回收器,主要是避免超大批量转文档时,内存占用过多,而垃圾回收器并不是时刻都在运行!
                //GC.Collect();
                //GC.WaitForPendingFinalizers();
            }
            return result;
        }

//type 为1表示word转pdf, type为3表示ppt转pdf, 预留2,excel2pdf
        static void Main(string[] args)
        {
            Console.WriteLine("start word2pdf");
            int len = args.Length;
            if (len > 1)
            {
                String srcPath = args[0].Replace("\"", "");  //路径有空格,用""括起来
                String tarPath = args[1].Replace("\"", "");
                word2PDF(srcPath, tarPath); 
            }
            Console.WriteLine("end!");
        }

}
}

c#调用microsoft word将word另存为pdf相关推荐

  1. Office word 2007不能另存为pdf格式的解决方法

    Office word 2007不能另存为pdf格式的解决方法 参考文章: (1)Office word 2007不能另存为pdf格式的解决方法 (2)https://www.cnblogs.com/ ...

  2. 轻松将 Word 文档另存为 PDF

    2007 Microsoft Office 加载项:Microsoft Save as PDF 或 XPS 官方下载地址 http://www.microsoft.com/downloads/deta ...

  3. word文档另存为pdf格式,如何设置导航栏

    打开论文对应的word,点击另存为,设置保存类型为PDF,之后点击选项,勾选创建书签时使用:标题,导出文件即可.

  4. Microsoft Office Word导出高清PDF步骤

    写论文后经常需要导出PDF,但若插进Word中的不是矢量图,会导致图片受损不高清. 常用的办法有: 方法1.word内直接另存为PDF 方法2.word内导出-创建PDF/XPS文档 方法3.word ...

  5. Word文档转换PDF格式常见转换技巧汇总

    时下,随着PDF文件格式的优点爆出,PDF文件已成为出版业的新宠.不过大部分工作族仍习惯使用Word文档编辑,而不适应PDF文件编辑,但在传输上又造成了一定的麻烦,这就有了"转换" ...

  6. Word处理控件Aspose.Words功能演示:在 Java 中将 Word DOC/DOCX 转换为 PDF

    Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word. A ...

  7. Word处理控件Aspose.Words功能演示:使用 Android 库将 Word 文档转换为 PDF

    Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word.此 ...

  8. 如何将Microsoft Word文档转换为PDF

    PDFs are handy for distributing documents so that they're seen the same way by all parties. Typicall ...

  9. Word另存为PDF时出现“错误!未找到引用源”的解决

    Word另存为PDF时,交叉引用的位置有时会出问题,导致排版混乱,比如交叉引用位置出现"错误!未找到引用源".可以通过锁定域更新解决. 如果要对某个域锁定,方法为:单击选定此域,然 ...

  10. office365 word 另存为 pdf 的注意事项和典型设置

    0. 操作环境介绍 Office 版本:Office 365 版本 不同版本的操作可能有所不同 1. 基本操作 – 另存为 pdf [文件] --> [另存为],选择适当的文件路径.文件名 保存 ...

最新文章

  1. centos配置-java-php-mysql【转载参考】
  2. ESP8266 如何修改默认上电校准方式?另外为什么 ESP8266 进⼊启动模式(2,7)并触发看⻔狗复位?
  3. SAP Commerce配置属性的优先级
  4. 抓取手机https_python爬虫入门02:教你通过 Fiddler 进行手机抓包
  5. Java整数缓存-为什么Integer.valueOf(127)== Integer.valueOf(127)为True
  6. TCP与UDP的选择--结合QQ来说明
  7. linux内核 默认路由表,Linux 默认路由表 0.0.0.0
  8. LeetCode(748)——最短完整词(JavaScript)
  9. 上传文件(ajax结合form表单)
  10. Ubunt_配置_tftp(文件传输)
  11. json转Map泛型Map<String,T>,json转集合Map泛型List<Map<String,T>>工具类
  12. 移动端H5上传图片裁剪
  13. Pr剪辑上分攻略---电子相册制作
  14. java中dao_java中的Dao类是什么意思?
  15. 一个老程序员的心里话!
  16. 两台路由器直连服务器需要怎么配置,设置串联两台无线路由器的方法步骤
  17. 2015年3月TIOBE编程语言排行榜单
  18. 【hadoop权威指南第四版】第五章MR应用【笔记+代码】
  19. 如何用python群发工资条
  20. AI会让AI工程师失业吗?

热门文章

  1. 服务器为什么经常掉线?
  2. 后台权限管理系统设计(图文教程)
  3. linux下oracle数据库自动备份方案
  4. 综合项目之闪讯破解(五)之 如何用C#调用C++编写的Dll
  5. 硬盘数据恢复软件免费版有免费使用的吗
  6. 什么是JRE(或J2RE)?
  7. 汉澳Sinox2014X64server高级桌面服务器版操作系统发布
  8. 浅谈Foxmail邮件迁移
  9. 学习笔记之极客时间《Java 核心技术面试精讲》
  10. 如何使广告条自动运行,仅供学习参考