通过 C# 打印Word文档
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文档的更多相关文章
- Java jacob调用打印机打印word文档
前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档. 起初用的是自带的PrintJob,但是系统提供的打印机制并不成熟完整.网上的代码也是千篇一律,在我的打印 ...
- Java 打印Word文档
本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法.文中使用了类库Spire.Doc for Java,可通过官网下载jar文件并导入程序或者直接通过maven仓库安装导入 ...
- Java 使用新方法打印Word文档
前言 我曾写过一篇文章,它主要介绍了如何通过物理打印机和虚拟打印机来打印Word文档.今天这篇教程将介绍一种新的方法来实现对Word文档的打印. 此次使用到的类库仍然是Spire.Doc for Ja ...
- 打印word文档时遇到标记区如何取消
故障描述:word页面显示正常,打印以及打印预览的时候,页面上会出现部分暗色区域(标记区) 故障原因:简单标记惹的祸 解决办法:word菜单栏-审阅-简单标记 ...
- Office 如何双面打印Word文档
打印之前勾选手动双面打印,然后开始打印(不管当前文档有几页,要打印几份,会只打印奇数页面) 只要开始打印奇数页面,就会有一个弹出窗口,当完成之后把打印的东西拿出来,整个翻面再放回打印机,点击确定会 ...
- C#中5步完成word文档打印的方法
在日常工作中,我们可能常常需要打印各种文件资料,比如word文档.对于编程员,应用程序中文档的打印是一项非常重要的功能,也一直是一个非常复杂的工作.特别是提到Web打印,这的确会很棘手.一般如果要想选 ...
- word文档的生成、修改、渲染、打印,使用Aspose.Words
无需MS Word也可执行各种文档处理任务,包括文档的生成.修改.渲染.打印,文档格式转换和邮件合并等文档处理.
- Java生成 Word文档的并打印解决方案
户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈. POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个 ...
- 一键批量打印EXCEL、WORD文档
一键批量打印EXCEL.WORD文档,本方法也可以打印同一个文档N份,可以批量打印A3.A4文档,包括单.双面打印等.希望能帮到广大朋友.请大家注重原创版权,不得在未经许可的下转载.传播,或者用来对同 ...
- (转)WEB页面导出为Word文档后分页&横向打印的方法
<html> <HEAD> <title>WEB页面导出为Word文档后分页&横向打印的方法 </title> < ...
随机推荐
- 如何查看一个域名所对应的IP地址?
具体步骤如下: 1.点击电脑左下角开始菜单,打开"运行"选项. 2.然后输入"cmd"并打开. 3.在弹出的页面输入ping+你想要查看的域名,比如新浪网,pi ...
- HP 打印机驱动
HP Universal Print Driver Series for Windows https://support.hp.com/cn-zh/drivers/selfservice/hp-uni ...
- 今天记录一下小程序使用微信客服api,而不是小程序客服
小程序客服缺少很多东西,并且只能使用button的开放能力,所以尝试使用一下微信客服,自己开发客服又比较麻烦,秉着能免费绝不花钱的想法,接下来就直接写代码,也就是api,记录下来方便使用 wx.ope ...
- 【译】在分析器中使用 Meter Histogram(直方图)解锁见解
您是否正在与应用程序中的性能瓶颈作斗争?不要再观望了!Visual Studio 2022 在其性能分析套件中引入了 Meter Histogram(直方图)功能,为您提供了前所未有的分析和可视化直方 ...
- 前端(四)-jQuery
1.jQuery的基本用法 1.1 jQuery引入 <script src="js/jquery-3.4.1.min.js" type="text/javascr ...
- 微服务实战系列(一)-注册中心Springcloud Eureka服务端-copy
1. 场景描述 springcloud提供了一整套可行的构建分布式系统的方案,使的企业/开发人员能够快速沟通分布式系统,今天快速构建下springcloud的注册中心Eureka. 2. 解决方案 2 ...
- Android性能测试(内存、cpu、fps、流量、GPU、电量)——adb篇
adb 常用命令 获取连接设备号:adb devices 列出设备所有已安装的包名 (不需root权限) adb shell "pm list packages",可以加上 ...
- Spring Cloud认知学习(三):网关Zuul、config使用
目录 zuul 作用: 简单示例: 0.创建模块 1.导入依赖: 2.主程序增加注解: 3.配置application.yml: 4.测试 配置语法: 路由 补充: 上一篇介绍一个新的组件Hystri ...
- 解密prompt系列47. O1 Long Thought的一些特征分析
之前我们花很多章讨论过思维链,包括思维链的 组织结构,例如Self-Consistency,TOT,TOMT, GOT,AOT,POT 编排方式,例如Plan-and-Slove,Least-to-m ...
- TCP/IP协议笔记
TCP/IP 一.TCP/IP简介 TCP/IP 指传输控制协议/网际协议(Transmission Control Protocol / Internet Protocol),是用于因特网 (Int ...