首页 > 编程语言 >C# 打印Word文档的两种方式

C# 打印Word文档的两种方式

时间:2022-12-01 09:14:02浏览次数:68  
标签:Word Office C# 打印 Interop 文档 Microsoft

方式一:使用Microsoft.Office.Interop.Word

C#可利用Microsoft.Office.Interop.Word进行Word文档的静默打印,封装为如下代码:

private static void Print(string fileName)
{
    try
    {
        var word = new Microsoft.Office.Interop.Word.Application { Visible = false }; // 启动Word进程
        var doc = word.Documents.Open(fileName, ReadOnly: true, Visible: Missing.Value); // 打开待打印的文档
        doc.PrintOut(); // 打印
        doc.Close(SaveChanges: false); // 关闭文档
        word.Quit(SaveChanges: false); // 退出Word进程
    }
    catch (Exception ex)
    {
        Console.Error.WriteLine(ex.Message);
    }
}

使用需注意如下几个问题:

  1. Microsoft.Office.Interop.Word目前只能在.net framework框架下使用,.net core和.net 5/6目前还无法使用,比较坑
  2. 如果要打印多个文档,可以只创建一个Microsoft.Office.Interop.Word进程,待文档都打印完后,再调用word.Quit()退出进程
  3. 打印完后一定要调用word.Quit()退出进程,否则任务管理器中会驻留Word进程

方式二:使用命令行ProcessStartInfo

在有的电脑上因为Word的组件问题,使用Microsoft.Office.Interop.Word会出现报错而无法正常打印,

这时可以考虑使用windows命令进行打印,封装代码如下:

private static void Print(string fileName)
{
    try
    {
        var info = new ProcessStartInfo(fileName)
        {
            CreateNoWindow = true,
            Verb = "Print",
            WindowStyle = ProcessWindowStyle.Hidden
        };
        Process.Start(info);
    }
    catch (Exception ex)
    {
        Console.Error.WriteLine(ex.Message);
    }
}

感谢:

https://zhuanlan.zhihu.com/p/497701524

标签:Word,Office,C#,打印,Interop,文档,Microsoft
From: https://www.cnblogs.com/hailexuexi/p/16940386.html

相关文章