C#实现Word转为PDF的方法

所属分类: 软件编程 / C#教程 阅读数: 47
收藏 0 赞 0 分享

这里主要提供一种将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;
    }
  }
}

总结

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

更多精彩内容其他人还在看

WPF仿三星手机充电界面实现代码

这篇文章主要为大家详细介绍了WPF仿三星手机充电界面实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

浅谈C#各种数组直接的数据复制/转换

下面小编就为大家带来一篇浅谈C#各种数组直接的数据复制/转换。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

C#访问SQLServer增删改查代码实例

这篇文章主要为大家详细介绍了C#访问SQLServer增删改查代码实例,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C#根据身份证号码判断出生日期和性别

这篇文章主要为大家详细介绍了C#根据身份证号码判断出生日期和性别的方法,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C# 向Word中设置/更改文本方向的方法(两种)

在一般情况下word中输入的文字都是横向的,今天小编给大家带来两种方法来设置更改文本方向的方法,非常不错,对c# word 更改文本方向的知识感兴趣的朋友一起看看吧
收藏 0 赞 0 分享

让C# Excel导入导出 支持不同版本Office

让C# Excel导入导出,支持不同版本的Office,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C#设置自定义文件图标实现双击启动(修改注册表)

这篇文章介绍的是利用C#设置自定义文件图标,然后实现双击启动的功能,文章给出了示例代码,介绍的很详细,有需要的可以参考借鉴。
收藏 0 赞 0 分享

C#两个相同属性的类赋值方法

这篇文章主要介绍了C#两个相同属性的类赋值方法的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

C#中ListView控件实现窗体代码

这篇文章主要介绍了C#中ListView控件实现窗体的核心代码,非常不错,具有参考借鉴价值,对c#listview相关知识感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

浅谈C# 序列化与反序列化几种格式的转换

下面小编就为大家带来一篇浅谈C# 序列化与反序列化几种格式的转换。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多