通过 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> < ...
随机推荐
- 【转载】 SpringBoot声明式事务的简单运用
https://blog.csdn.net/justry_deng/article/details/80828180 关于事物的基本概念等这里就不介绍了. Spring声明式事物的实现,有两种方式:第 ...
- Qt数据库应用4-数据打印到纸张
一.前言 数据能够打印到pdf文件,当然可以打印到纸张,而且使用qprinter默认就是打印到纸张的,上一篇文章写得功能是打印到pdf,其实还要单独特殊设置打印到文件,并指定格式为pdf.不指定输出文 ...
- Qt编写地图综合应用24-miniblink内核
一.前言 用Qt做项目过程中,遇到需要用到浏览器控件的项目,可能都会绕不开一个问题,那就是从Qt5.6版本开始mingw编译器的Qt构建套件,不再提供浏览器控件了,之前还可以用webkit控件,这下很 ...
- 详解AQS四:ReentrantLock条件队列原理
ReentrantLock的条件队列是实现"等待通知"机制的关键,之前在<java线程间通信:等待通知机制>一文中讲过了使用ReentrantLock实现多生产者.多消 ...
- .NET Core GC对象 分配(GC Alloc)底层原理浅谈
对象分配策略 .NET程序的对象是由CLR控制并分配在托管堆中,如果是你,会如何设计一个内存分配策略呢? 按需分配,要多少分配多少,移动alloc_ptr指针即可,没有任何浪费.缺点是每次都要向OS申 ...
- Nginx-总结列表
Nginx配置详解 Nginx实现前后端分离,反向代理.负载均衡 Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 .它支持内核 Poll 模型,能经受高负载的考验,有报告表明 ...
- mybatis中的数据源和连接池
1.核心配置文件中配置数据库相关属性 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE con ...
- Ping测试记录脚本
@echo off echo PingTest del PingTest_result.txt timeout /t 10 echo=> PingTest_result.txt :TEST ec ...
- 共促国产AI生态繁荣,天翼云重磅发布魔乐开发者社区
8月29日,以"聚数乘云,天翼赋能数字经济新生态"为主题的天翼云中国行·贵州站活动顺利举办.会上,天翼云与华为联合打造的魔乐(Modelers)开发者社区正式上线发布.通过建设社区 ...
- 使用天翼云云容器引擎CCE创建简单nginx服务
本文分享自天翼云开发者社区<使用天翼云云容器引擎CCE创建简单nginx服务>,作者:b****n 一.创建一个nginx应用. 1.选择资源池,如[杭州2],进入云容器引擎CCE平台页面 ...