C#打印Word文檔的4種方法
Word文檔是日常辦公和學(xué)習(xí)中不可或缺的一部分。比如在商務(wù)往來(lái)中,經(jīng)常需要打印 Word 文檔用于撰寫(xiě)和傳遞正式的商務(wù)信函、合作協(xié)議、項(xiàng)目提案等。打印出來(lái)的文檔便于雙方簽字蓋章,具有法律效力和正式性。本文將提供以下4種通過(guò)C# 打印Word文檔的方法,以適應(yīng)不同的場(chǎng)景需求。
免費(fèi) .NET Word庫(kù) - Free Spire.Doc for .NET。要實(shí)現(xiàn)通過(guò)C#打印Word文檔,我們需要安裝該免費(fèi)庫(kù)(有頁(yè)數(shù)限制)??梢灾苯釉赩isual Studio中通過(guò)NuGet搜索 “FreeSpire.Doc”,然后點(diǎn)擊 “安裝” 將其引用到程序中?;蛘咄ㄟ^(guò)該鏈接下載產(chǎn)品包,解壓后再手動(dòng)將dll文件添加引用至程序。
C# 通過(guò)物理打印機(jī)打印Word文檔
通過(guò)免費(fèi).NET庫(kù)提供的 PrintDocument 類,我們可以在指定的打印機(jī)上打印 Word 文檔,還可以指定設(shè)置打印選項(xiàng),如要打印的頁(yè)面范圍、份數(shù)、和紙張大小等。
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 對(duì)象
PrintDocument printDoc = doc.PrintDocument;
// 指定打印機(jī)名稱
printDoc.PrinterSettings.PrinterName = "打印機(jī)名";
// 指定要打印的頁(yè)面范圍
printDoc.PrinterSettings.FromPage = 1;
printDoc.PrinterSettings.ToPage = 10;
// 設(shè)置打印份數(shù)
printDoc.PrinterSettings.Copies = 1;
// 指定紙張大小
printDoc.DefaultPageSettings.PaperSize = new PaperSize("custom", 500, 800);
// 打印文檔
printDoc.Print();
}
}
}C# 靜默打印 Word 文檔
靜默打印是指在打印過(guò)程中不彈出打印對(duì)話框,直接通過(guò)程序或系統(tǒng)設(shè)置自動(dòng)完成打印操作。使用Free Spire.Doc,我們可以將 PrintController 屬性設(shè)置為 StandardPrintController,用于隱藏打印進(jìn)程,從而實(shí)現(xiàn)靜默打印。
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 對(duì)象
PrintDocument printDoc = doc.PrintDocument;
// 指定打印機(jī)名稱
printDoc.PrinterSettings.PrinterName = "打印機(jī)名";
// 將PrintController屬性設(shè)置為StandardPrintController,用于隱藏打印進(jìn)程
printDoc.PrintController = new StandardPrintController();
// 打印文檔
printDoc.Print();
}
}
}注意:靜默打印時(shí)無(wú)法實(shí)時(shí)確認(rèn)打印效果和參數(shù)設(shè)置,如果打印機(jī)出現(xiàn)故障或打印參數(shù)設(shè)置錯(cuò)誤,可能會(huì)導(dǎo)致打印失敗或結(jié)果不符合預(yù)期。所以在正式使用靜默打印前,建議先進(jìn)行測(cè)試,確保打印設(shè)置和打印機(jī)狀態(tài)正常。
C# 通過(guò)虛擬打印機(jī)將 Word 轉(zhuǎn)為 PDF
虛擬打印機(jī)是一種軟件,能模擬實(shí)現(xiàn)打印機(jī)的功能,但并不涉及實(shí)際的紙張和墨水消耗,而是將電子文檔轉(zhuǎn)換為特定格式的電子文件保存在電腦上。除了物理打印機(jī)外,F(xiàn)ree Spire.Doc也支持使用虛擬打印機(jī)。
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 對(duì)象
PrintDocument printDoc = doc.PrintDocument;
// 打印輸出到文件
printDoc.PrinterSettings.PrintToFile = true;
// 指定虛擬打印機(jī)名稱
printDoc.PrinterSettings.PrinterName = "Microsoft Print to PDF";
// 指定輸出文件路徑和名稱
printDoc.PrinterSettings.PrintFileName = @"C:\Users\Administrator\Desktop\ToPDF.pdf";
// 打印文檔
printDoc.Print();
}
}
}C# 在一張紙上打印多個(gè)頁(yè)面
將多個(gè)相關(guān)的 Word 文檔頁(yè)面打印在一張紙上,以便于對(duì)比查看和整理資料,提高工作效率,減少紙張浪費(fèi)。通過(guò)使用 PrintMultipageToOneSheet() 方法可以實(shí)現(xiàn)該操作。
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 對(duì)象
PrintDocument printDoc = doc.PrintDocument;
// 啟用單面打印
printDoc.PrinterSettings.Duplex = Duplex.Simplex;
// 將指定的頁(yè)數(shù)打印到一頁(yè)上
doc.PrintMultipageToOneSheet(PagesPreSheet.TwoPages, false);
}
}
}到此這篇關(guān)于C#打印Word文檔的4種方法的文章就介紹到這了,更多相關(guān)C#打印Word內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于C#實(shí)現(xiàn)獲取Windows所有窗口句柄
在做錄屏或截屏操作時(shí),需要獲取當(dāng)前正在運(yùn)行中的桌面程序句柄,所以這篇文章主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)獲取Windows所有窗口句柄,需要的可以參考下2023-12-12
c#使用ManagedWifi查看當(dāng)前Wifi信號(hào)并選擇wifi的示例
這篇文章主要介紹了c#使用ManagedWifi查看當(dāng)前Wifi信號(hào)并選擇wifi的示例,需要的朋友可以參考下2014-04-04
Unity使用物理引擎實(shí)現(xiàn)多旋翼無(wú)人機(jī)的模擬飛行
這篇文章主要介紹了Unity使用物理引擎實(shí)現(xiàn)多旋翼無(wú)人機(jī)的模擬飛行,包括了詳細(xì)的原理介紹和代碼實(shí)現(xiàn),對(duì)物理引擎感興趣的同學(xué),可以參考下2021-04-04
DevExpress之ChartControl實(shí)現(xiàn)餅狀圖百分比演示實(shí)例
這篇文章主要介紹了DevExpress之ChartControl實(shí)現(xiàn)餅狀圖百分比演示的方法,實(shí)例講述了窗體與圖形繪制函數(shù)的用法,需要的朋友可以參考下2014-10-10
詳解C#如何為某個(gè)方法設(shè)定執(zhí)行超時(shí)時(shí)間
這篇文章主要為大家詳細(xì)介紹一下C#如何為某個(gè)方法設(shè)定執(zhí)行超時(shí)時(shí)間,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以學(xué)習(xí)一下2023-10-10
C#實(shí)現(xiàn)Word轉(zhuǎn)Excel的兩種實(shí)用方法分享
在實(shí)際項(xiàng)目里,經(jīng)常碰到這種需求:客戶發(fā)來(lái)一份 Word 報(bào)告,里面有好幾個(gè)數(shù)據(jù)表格,或者整篇文檔需要轉(zhuǎn)成 Excel 做進(jìn)一步處理,因此本文介紹了使用Spire.Docfor.NET庫(kù)將Word文檔轉(zhuǎn)換為Excel文件的兩種方法,需要的朋友可以參考下2026-05-05
說(shuō)說(shuō)C#的async和await的具體用法
本篇文章主要介紹了說(shuō)說(shuō)C#的async和await的具體用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
采用easyui tree編寫(xiě)簡(jiǎn)單角色權(quán)限代碼的方法
本文主要介紹了如何采用easyui tree編寫(xiě)簡(jiǎn)單角色權(quán)限代碼,文章思路清晰,需要的朋友可以參考下2015-07-07

