通过 C# 打印Word文档

打印 上一主题 下一主题

主题 1002|帖子 1002|积分 3006

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# 代码:
  1. using Spire.Doc;
  2. using System.Drawing.Printing;
  3. namespace PrintWordDocument
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             // 加载Word文档
  10.             Document doc = new Document();
  11.             doc.LoadFromFile("示例.docx");
  12.             // 获取 PrintDocument 对象
  13.             PrintDocument printDoc = doc.PrintDocument;
  14.             // 指定打印机名称
  15.             printDoc.PrinterSettings.PrinterName = "打印机名";
  16.             // 指定要打印的页面范围
  17.             printDoc.PrinterSettings.FromPage = 1;
  18.             printDoc.PrinterSettings.ToPage = 10;
  19.             // 设置打印份数
  20.             printDoc.PrinterSettings.Copies = 1;
  21.             // 指定纸张大小
  22.             printDoc.DefaultPageSettings.PaperSize = new PaperSize("custom", 500, 800);
  23.             // 打印文档
  24.             printDoc.Print();
  25.         }
  26.     }
  27. }
复制代码
 
C# 静默打印 Word 文档

静默打印是指在打印过程中不弹出打印对话框,直接通过程序或体系设置自动完成打印操作。利用Free Spire.Doc,我们可以将 PrintController 属性设置为 StandardPrintController,用于隐藏打印进程,从而实现静默打印。
C# 代码:
  1. using Spire.Doc;
  2. using System.Drawing.Printing;
  3. namespace SilentlyPrintWord
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             // 加载Word文档
  10.             Document doc = new Document();
  11.             doc.LoadFromFile("示例.docx");
  12.             // 获取 PrintDocument 对象
  13.             PrintDocument printDoc = doc.PrintDocument;
  14.             // 指定打印机名称
  15.             printDoc.PrinterSettings.PrinterName = "打印机名";
  16.             // 将PrintController属性设置为StandardPrintController,用于隐藏打印进程
  17.             printDoc.PrintController = new StandardPrintController();
  18.             // 打印文档
  19.             printDoc.Print();
  20.         }
  21.     }
  22. }
复制代码
 
注意:静默打印时无法及时确认打印效果和参数设置,如果打印机出现故障或打印参数设置错误,大概会导致打印失败或效果不符合预期。所以在正式利用静默打印前,建议先进行测试,确保打印设置和打印机状态正常。
 
C# 通过虚拟打印机将 Word 转为 PDF

虚拟打印机是一种软件,能模仿实现打印机的功能,但并不涉及现实的纸张和墨水斲丧,而是将电子文档转换为特定格式的电子文件保存在电脑上。除了物理打印机外,Free Spire.Doc也支持利用虚拟打印机。
C# 代码:
  1. using Spire.Doc;
  2. using System.Drawing.Printing;
  3. namespace PrintWordToPdf
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             // 加载Word文档
  10.             Document doc = new Document();
  11.             doc.LoadFromFile("示例.docx");
  12.             // 获取 PrintDocument 对象
  13.             PrintDocument printDoc = doc.PrintDocument;
  14.             // 打印输出到文件
  15.             printDoc.PrinterSettings.PrintToFile = true;
  16.             // 指定虚拟打印机名称
  17.             printDoc.PrinterSettings.PrinterName = "Microsoft Print to PDF";
  18.             // 指定输出文件路径和名称
  19.             printDoc.PrinterSettings.PrintFileName = @"C:\Users\Administrator\Desktop\ToPDF.pdf";
  20.             // 打印文档
  21.             printDoc.Print();
  22.         }
  23.     }
  24. }
复制代码
 
C# 在一张纸上打印多个页面

将多个相关的 Word 文档页面打印在一张纸上,以便于对比查察和整理资料,提高工作效率,减少纸张浪费。通过利用 PrintMultipageToOneSheet() 方法可以实现该操作。
C# 代码:
  1. using Spire.Doc;
  2. using Spire.Doc.Printing;
  3. using System.Drawing.Printing;
  4. namespace PrintMultiplePagesOnOneSheet
  5. {
  6.     internal class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             // 加载Word文档
  11.             Document doc = new Document();
  12.             doc.LoadFromFile("示例.docx");
  13.             // 获取 PrintDocument 对象
  14.             PrintDocument printDoc = doc.PrintDocument;
  15.             // 启用单面打印
  16.             printDoc.PrinterSettings.Duplex = Duplex.Simplex;
  17.             // 将指定的页数打印到一页上
  18.             doc.PrintMultipageToOneSheet(PagesPreSheet.TwoPages, false);
  19.         }
  20.     }
  21. }
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美食家大橙子

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表