C#实现Word转为PDF的方法

 更新时间:2019年01月23日 10:22:59   作者:chenqiangdage  
今天小编就为大家分享一篇关于C#实现Word转为PDF的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

这里主要提供一种将word文档转成PDF文档的实现;

具体实现看c#代码:要引入Microsoft.Office.Interop.Word;版本12.0.0.0

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Word;
//Office 命名空间
namespace OfficeToPdf
{
  //excel 类
  class WordConverter
  {
    //构造函数
    public WordConverter()
    { }
    /// <summary>
    /// 转换word 成PDF文档
    /// </summary>
    /// <param name="_lstrInputFile">原文件路径</param>
    /// <param name="_lstrOutFile">pdf文件输出路径</param>
    /// <returns>true 成功</returns>
    public bool ConverterToPdf(string _lstrInputFile, string _lstrOutFile)
    {
      Microsoft.Office.Interop.Word.Application lobjWordApp = null;
      Document objDoc = null;
      object lobjMissing = System.Reflection.Missing.Value;
      object lobjSaveChanges = null;
      try
      {
        Object lobjFileName = (Object)_lstrInputFile;
        objDoc = lobjWordApp.Documents.Open(ref lobjFileName, ref lobjMissing, ref lobjMissing,
          ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing,
          ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing);
        objDoc.Activate();
        Object lobjOutPutFileName = (Object)_lstrOutFile;
        object lobjFileFormat = WdSaveFormat.wdFormatPDF; //保存格式为PDF
        objDoc.SaveAs(ref lobjOutPutFileName,ref lobjFileFormat, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing,
          ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing, ref lobjMissing,
          ref lobjMissing, ref lobjMissing, ref lobjMissing);
        lobjSaveChanges = WdSaveOptions.wdDoNotSaveChanges;
        ((_Document)objDoc).Close(ref lobjSaveChanges, ref lobjMissing, ref lobjMissing);
        objDoc = null;
        ((_Application)lobjWordApp).Quit(ref lobjSaveChanges, ref lobjMissing, ref lobjMissing);
        lobjWordApp = null;
      }
      catch (Exception ex)
      {
        //其他日志操作;
        return false;
      }
      finally
      {
        if (objDoc != null)
        {
          ((_Document)objDoc).Close(ref lobjSaveChanges, ref lobjMissing, ref lobjMissing);
          Marshal.ReleaseComObject(objDoc);
          objDoc = null;
        }
        if (lobjWordApp != null)
        {
          ((_Application)lobjWordApp).Quit(ref lobjSaveChanges, ref lobjMissing, ref lobjMissing);
          Marshal.ReleaseComObject(lobjWordApp);
          lobjWordApp = null;
        }
        //主动激活垃圾回收器,主要是避免超大批量转文档时,内存占用过多,而垃圾回收器并不是时刻都在运行!
        GC.Collect();
        GC.WaitForPendingFinalizers();
      }
      return true;
    }
  }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • C#实现剪刀石头布游戏

    C#实现剪刀石头布游戏

    这篇文章主要为大家详细介绍了C#实现剪刀石头布游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 详解C#获取特定进程CPU和内存使用率

    详解C#获取特定进程CPU和内存使用率

    本篇文章主要介绍详解C#获取特定进程CPU和内存使用率,非常具有实用价值,需要的朋友可以参考下。
    2016-11-11
  • C#实现冒泡排序和插入排序算法

    C#实现冒泡排序和插入排序算法

    这篇文章介绍了C#实现冒泡排序和插入排序算法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#使用正则表达式过滤html标签

    C#使用正则表达式过滤html标签

    最近在开发一个项目,其中有需求要求我们把一段html转换为一般文本返回,使用正则表达式是明智的选择,下面小编给介绍下C#使用正则表达式过滤html标签,需要的朋友参考下
    2016-08-08
  • 详解从ObjectPool到CAS指令

    详解从ObjectPool到CAS指令

    这篇文章主要介绍了从ObjectPool到CAS指令 ,本文主要是带大家看了下ObjectPool的源码,然后看了看ObjectPool能实现无锁线程安全的最大功臣Interlocked.CompareExchange方法,需要的朋友可以参考下
    2022-11-11
  • C#播放音频文件的详细步骤

    C#播放音频文件的详细步骤

    这篇文章主要介绍了C#播放音频文件的详细步骤,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • 基于DateTime.ParseExact方法的使用详解

    基于DateTime.ParseExact方法的使用详解

    本篇文章是对DateTime.ParseExact方法的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C#中常量和只读变量的区别小结

    C#中常量和只读变量的区别小结

    本篇文章主要是对C#中常量和只读变量的区别进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C# 排序算法之堆排序

    C# 排序算法之堆排序

    这里是指一种数据结构,而不是我们在C#中提到的用于存储引用类型对象的地方。它可以被当成一棵完全二叉树。
    2010-09-09
  • C#/VB.NET实现在Word文档中添加页眉和页脚

    C#/VB.NET实现在Word文档中添加页眉和页脚

    页眉位于文档中每个页面的顶部区域,常用于显示文档的附加信息;页脚位于文档中每个页面的底部的区域,常用于显示文档的附加信息。今天这篇文章就将为大家展示如何以编程的方式在在 Word 文档中添加页眉和页脚
    2023-03-03

最新评论