Word文档是日常办公和学习中不可或缺的一部分。比如在商务往来中,经常需要打印 Word 文档用于撰写和传递正式的商务信函、合作协议、项目提案等。打印出来的文档便于双方签字盖章,具有法律效力和正式性。本文将提供以下4种通过C# 打印Word文档的方法,以适应不同的场景需求。

  • C# 通过物理打印机打印Word文档
  • C# 静默打印 Word 文档
  • C# 通过虚拟打印机将 Word 转为 PDF
  • C# 在一张纸上打印多个页面

免费 .NET Word库 - Free Spire.Doc for .NET。要实现通过C#打印Word文档,我们需要安装该免费库(有页数限制)。可以直接在Visual Studio中通过NuGet搜索 “FreeSpire.Doc”,然后点击 “安装” 将其引用到程序中。或者通过以下链接下载产品包,解压后再手动将dll文件添加引用至程序。
https://www.e-iceblue.com/Download/download-excel-for-net-free.html

C# 通过物理打印机打印Word文档

通过免费.NET库提供的 PrintDocument 类,我们可以在指定的打印机上打印 Word 文档,还可以指定设置打印选项,如要打印的页面范围、份数、和纸张大小等。

C# 代码:

using Spire.Doc;
using System.Drawing.Printing; namespace PrintWordDocument
{
class Program
{
static void Main(string[] args)
{
// 加载Word文档
Document doc = new Document();
doc.LoadFromFile("示例.docx"); // 获取 PrintDocument 对象
PrintDocument printDoc = doc.PrintDocument; // 指定打印机名称
printDoc.PrinterSettings.PrinterName = "打印机名"; // 指定要打印的页面范围
printDoc.PrinterSettings.FromPage = 1;
printDoc.PrinterSettings.ToPage = 10; // 设置打印份数
printDoc.PrinterSettings.Copies = 1; // 指定纸张大小
printDoc.DefaultPageSettings.PaperSize = new PaperSize("custom", 500, 800); // 打印文档
printDoc.Print();
}
}
}

C# 静默打印 Word 文档

静默打印是指在打印过程中不弹出打印对话框,直接通过程序或系统设置自动完成打印操作。使用Free Spire.Doc,我们可以将 PrintController 属性设置为 StandardPrintController,用于隐藏打印进程,从而实现静默打印。

C# 代码:

using Spire.Doc;
using System.Drawing.Printing; namespace SilentlyPrintWord
{
class Program
{
static void Main(string[] args)
{
// 加载Word文档
Document doc = new Document();
doc.LoadFromFile("示例.docx"); // 获取 PrintDocument 对象
PrintDocument printDoc = doc.PrintDocument; // 指定打印机名称
printDoc.PrinterSettings.PrinterName = "打印机名"; // 将PrintController属性设置为StandardPrintController,用于隐藏打印进程
printDoc.PrintController = new StandardPrintController(); // 打印文档
printDoc.Print();
}
}
}

注意:静默打印时无法实时确认打印效果和参数设置,如果打印机出现故障或打印参数设置错误,可能会导致打印失败或结果不符合预期。所以在正式使用静默打印前,建议先进行测试,确保打印设置和打印机状态正常。

C# 通过虚拟打印机将 Word 转为 PDF

虚拟打印机是一种软件,能模拟实现打印机的功能,但并不涉及实际的纸张和墨水消耗,而是将电子文档转换为特定格式的电子文件保存在电脑上。除了物理打印机外,Free Spire.Doc也支持使用虚拟打印机。

C# 代码:

using Spire.Doc;
using System.Drawing.Printing; namespace PrintWordToPdf
{
class Program
{
static void Main(string[] args)
{
// 加载Word文档
Document doc = new Document();
doc.LoadFromFile("示例.docx"); // 获取 PrintDocument 对象
PrintDocument printDoc = doc.PrintDocument; // 打印输出到文件
printDoc.PrinterSettings.PrintToFile = true; // 指定虚拟打印机名称
printDoc.PrinterSettings.PrinterName = "Microsoft Print to PDF"; // 指定输出文件路径和名称
printDoc.PrinterSettings.PrintFileName = @"C:\Users\Administrator\Desktop\ToPDF.pdf"; // 打印文档
printDoc.Print();
}
}
}

C# 在一张纸上打印多个页面

将多个相关的 Word 文档页面打印在一张纸上,以便于对比查看和整理资料,提高工作效率,减少纸张浪费。通过使用 PrintMultipageToOneSheet() 方法可以实现该操作。

C# 代码:

using Spire.Doc;
using Spire.Doc.Printing;
using System.Drawing.Printing; namespace PrintMultiplePagesOnOneSheet
{
internal class Program
{
static void Main(string[] args)
{
// 加载Word文档
Document doc = new Document();
doc.LoadFromFile("示例.docx"); // 获取 PrintDocument 对象
PrintDocument printDoc = doc.PrintDocument; // 启用单面打印
printDoc.PrinterSettings.Duplex = Duplex.Simplex; // 将指定的页数打印到一页上
doc.PrintMultipageToOneSheet(PagesPreSheet.TwoPages, false);
}
}
}

通过 C# 打印Word文档的更多相关文章

  1. Java jacob调用打印机打印word文档

    前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档. 起初用的是自带的PrintJob,但是系统提供的打印机制并不成熟完整.网上的代码也是千篇一律,在我的打印 ...

  2. Java 打印Word文档

    本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法.文中使用了类库Spire.Doc for Java,可通过官网下载jar文件并导入程序或者直接通过maven仓库安装导入 ...

  3. Java 使用新方法打印Word文档

    前言 我曾写过一篇文章,它主要介绍了如何通过物理打印机和虚拟打印机来打印Word文档.今天这篇教程将介绍一种新的方法来实现对Word文档的打印. 此次使用到的类库仍然是Spire.Doc for Ja ...

  4. 打印word文档时遇到标记区如何取消

           故障描述:word页面显示正常,打印以及打印预览的时候,页面上会出现部分暗色区域(标记区)        故障原因:简单标记惹的祸        解决办法:word菜单栏-审阅-简单标记 ...

  5. Office 如何双面打印Word文档

    打印之前勾选手动双面打印,然后开始打印(不管当前文档有几页,要打印几份,会只打印奇数页面)   只要开始打印奇数页面,就会有一个弹出窗口,当完成之后把打印的东西拿出来,整个翻面再放回打印机,点击确定会 ...

  6. C#中5步完成word文档打印的方法

    在日常工作中,我们可能常常需要打印各种文件资料,比如word文档.对于编程员,应用程序中文档的打印是一项非常重要的功能,也一直是一个非常复杂的工作.特别是提到Web打印,这的确会很棘手.一般如果要想选 ...

  7. word文档的生成、修改、渲染、打印,使用Aspose.Words

    无需MS Word也可执行各种文档处理任务,包括文档的生成.修改.渲染.打印,文档格式转换和邮件合并等文档处理.

  8. Java生成 Word文档的并打印解决方案

    户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈. POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个 ...

  9. 一键批量打印EXCEL、WORD文档

    一键批量打印EXCEL.WORD文档,本方法也可以打印同一个文档N份,可以批量打印A3.A4文档,包括单.双面打印等.希望能帮到广大朋友.请大家注重原创版权,不得在未经许可的下转载.传播,或者用来对同 ...

  10. (转)WEB页面导出为Word文档后分页&横向打印的方法

    <html>    <HEAD>        <title>WEB页面导出为Word文档后分页&横向打印的方法 </title>    < ...

随机推荐

  1. 如何查看一个域名所对应的IP地址?

    具体步骤如下: 1.点击电脑左下角开始菜单,打开"运行"选项. 2.然后输入"cmd"并打开. 3.在弹出的页面输入ping+你想要查看的域名,比如新浪网,pi ...

  2. HP 打印机驱动

    HP Universal Print Driver Series for Windows https://support.hp.com/cn-zh/drivers/selfservice/hp-uni ...

  3. 今天记录一下小程序使用微信客服api,而不是小程序客服

    小程序客服缺少很多东西,并且只能使用button的开放能力,所以尝试使用一下微信客服,自己开发客服又比较麻烦,秉着能免费绝不花钱的想法,接下来就直接写代码,也就是api,记录下来方便使用 wx.ope ...

  4. 【译】在分析器中使用 Meter Histogram(直方图)解锁见解

    您是否正在与应用程序中的性能瓶颈作斗争?不要再观望了!Visual Studio 2022 在其性能分析套件中引入了 Meter Histogram(直方图)功能,为您提供了前所未有的分析和可视化直方 ...

  5. 前端(四)-jQuery

    1.jQuery的基本用法 1.1 jQuery引入 <script src="js/jquery-3.4.1.min.js" type="text/javascr ...

  6. 微服务实战系列(一)-注册中心Springcloud Eureka服务端-copy

    1. 场景描述 springcloud提供了一整套可行的构建分布式系统的方案,使的企业/开发人员能够快速沟通分布式系统,今天快速构建下springcloud的注册中心Eureka. 2. 解决方案 2 ...

  7. Android性能测试(内存、cpu、fps、流量、GPU、电量)——adb篇

    adb 常用命令 获取连接设备号:adb devices     列出设备所有已安装的包名 (不需root权限) adb shell "pm list packages",可以加上 ...

  8. Spring Cloud认知学习(三):网关Zuul、config使用

    目录 zuul 作用: 简单示例: 0.创建模块 1.导入依赖: 2.主程序增加注解: 3.配置application.yml: 4.测试 配置语法: 路由 补充: 上一篇介绍一个新的组件Hystri ...

  9. 解密prompt系列47. O1 Long Thought的一些特征分析

    之前我们花很多章讨论过思维链,包括思维链的 组织结构,例如Self-Consistency,TOT,TOMT, GOT,AOT,POT 编排方式,例如Plan-and-Slove,Least-to-m ...

  10. TCP/IP协议笔记

    TCP/IP 一.TCP/IP简介 TCP/IP 指传输控制协议/网际协议(Transmission Control Protocol / Internet Protocol),是用于因特网 (Int ...