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. java int转byte数组

    int 转 byte[] 低字节在前(低字节序)public static byte[] toLH(int n) { byte[] b = new byte[4]; b[0] = (byte) (n ...

  2. Linux 中的内存使用率计算方式

    背景介绍 在工作中处理问题的时候,遇到一个问题,自己根据 top 命令时查看到的 used 和 total 计算出来的内存使用率已经达到 90% 以上了,但是系统自带的监控软件计算出来的使用率往往没有 ...

  3. Qt开源作品31-屏幕截图控件

    一.前言 屏幕截图控件在我的很多项目中都有用到,尤其是嵌入式的系统上的软件,因为在嵌入式系统中,基本上系统都很精简,甚至连UI都没有,开机之后直接运行的就是Qt程序,很多时候需要对软件进行截图保存下来 ...

  4. UML之类与类图

    在所有项目中,类都是最常见的UML模型元素(当然,不可否认,很多项目还没画出类图就直接进入编码实现的阶段了).类是UML模型与具体实现代码之间的桥梁,随着对UML建模的深入了解,我们也会发现,类(确切 ...

  5. 用 Ingram 和 masscan 来扫描全网存在漏洞的camera

    前言 大学的时候也写过和Ingram差不多的工具,不过那时候已经玩到没有兴致了,代码已不知道哪里去.没想到在Github看到了这个工具,实现思路和我的几乎一样,互联网就是这么神奇. Ingram的Gi ...

  6. 《jQueryEasyUI从零开始学》-施尧2018一书的配套源代码和学习资源

    <jQueryEasyUI从零开始学>-施尧2018一书的配套源代码和学习资源:下载地址 提取码:uuly

  7. 移动端弱网优化专题(十四):携程APP移动网络优化实践(弱网识别篇)

    本文由携程技术团队Aaron分享,原题"干货 | 携程弱网识别技术探索",下文进行了排版和内容优化. 1.引言 网络优化一直是移动互联网时代的热议话题,弱网识别作为移动端弱网优化的 ...

  8. [LC515]在每个树的行中找最大值

    题目内容 题目分析 这是一道典型的树结构遍历题,可以使用层序遍历(BFS)或者(DFS)进行解题. 在BFS中,使用队列结构遍历树的每一层并维护每层的最大值. 在DFS中,由于并不是一层一层的去访问树 ...

  9. Solution -「洛谷 P8477」 「GLR-R3」春分 下界证明?!

      前情提要:在「洛谷 P8477」 「GLR-R3」春分中,我们给出了 \(\frac{7}{6}n\pm\mathcal O(1)\) 的解法,但没能给出相关的下界证明.现在我们尝试给出一个未完全 ...

  10. Solution Set - “伸手向着拉格朗日点作别”

    目录 0.「UR #9」「UOJ #133」电路手动分析 1.「UR #9」「UOJ #134」App 管理器 2.「UR #10」「UOJ #152」汉诺塔 3.「UNR #2」「UOJ #312」 ...