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. MockQueryable:LINQ查询模拟测试工具

    我们在项目开发过程中,单元测试是确保代码质量的重要环节.涉及数据库LINQ查询逻辑,就需要数据库配合,但这样可能出现性能和数据库并发等问题.下面给推荐一个开源库,为开发者提供了一种简便的方式来模拟LI ...

  2. logback 中打印自定义参数 (ip 服务名)

    打印 application.properties 配置文件中的参数 首先需要引入文件 <property resource="application.properties" ...

  3. Unity 3D使用C#脚本实例

    界面 结构 代码 1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 usin ...

  4. Qt音视频开发09-ffmpeg内核音视频同步

    一.前言 用ffmpeg来做音视频同步,个人认为这个是ffmpeg基础处理中最难的一个,无数人就卡在这里,怎么也不准,本人也是尝试过网上各种demo,基本上都是渣渣,要么仅仅支持极其少量的视频文件比如 ...

  5. C#程序如何把窗体文件从一个项目中复制到另一个项目

    一个窗体有三个文件,全部拷贝到新的项目中 在新的项目中点击显示所有文件,然后右击导入的文件,点击包括在项目中,会自动修改颜色(此时还没有被识别为窗体) 重启这个项目,三个文件已经被识别出来了 原文链接 ...

  6. 《Spring MVC+MyBatis快速开发与项目实战》-黄文毅2019:一书的源码和配套视频下载地址

    <Spring MVC+MyBatis快速开发与项目实战>-黄文毅2019:一书的源码下载地址: http://github.com/huangwenyi10/springmvc-myba ...

  7. 阿里IM技术分享(三):闲鱼亿级IM消息系统的架构演进之路

    本文由阿里闲鱼技术团队今朝.有攸分享,本次有修订. 1.引言 闲鱼即时消息系统历经数代迭代,目前已能稳定的支撑亿级消息体量. 在此消息系统的建设过程中,我们经历了从简单到复杂.从困扰到破局,每一次的技 ...

  8. Note - 速通 NPC?有限域算术!

    浅谈有限域在 OI 中的一些应用 (2023 国家集训队论文), 戚朗瑞.   \(\textbf{Example 1.}\)   给定一张有向图 \(G=(V,E)\), \(|V|=n\), \( ...

  9. Solution -「LOCAL」菜

    \(\mathscr{Description}\)   Private link.   给定 \(N,L,X,Y,K\),求选出 \(0\le a_1\le a_2\le\cdots a_{N-1}\ ...

  10. 字体查看比较工具 -- (采用wpf开发)

    为了进一步加深对字体文件的理解,我写了这个小工具.可以查看字体文件信息.显示字体文件包含的字体.可以从字体文件中抽取字体,保存为其子集. 加入qq群:565438497,下载最新程序. 1 显示字体文 ...