C#打印Word文檔的4種方法
Word文檔是日常辦公和學(xué)習(xí)中不可或缺的一部分。比如在商務(wù)往來(lái)中,經(jīng)常需要打印 Word 文檔用于撰寫和傳遞正式的商務(wù)信函、合作協(xié)議、項(xiàng)目提案等。打印出來(lái)的文檔便于雙方簽字蓋章,具有法律效力和正式性。本文將提供以下4種通過C# 打印Word文檔的方法,以適應(yīng)不同的場(chǎng)景需求。
免費(fèi) .NET Word庫(kù) - Free Spire.Doc for .NET。要實(shí)現(xiàn)通過C#打印Word文檔,我們需要安裝該免費(fèi)庫(kù)(有頁(yè)數(shù)限制)??梢灾苯釉赩isual Studio中通過NuGet搜索 “FreeSpire.Doc”,然后點(diǎn)擊 “安裝” 將其引用到程序中?;蛘咄ㄟ^該鏈接下載產(chǎn)品包,解壓后再手動(dòng)將dll文件添加引用至程序。
C# 通過物理打印機(jī)打印Word文檔
通過免費(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 文檔
靜默打印是指在打印過程中不彈出打印對(duì)話框,直接通過程序或系統(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# 通過虛擬打印機(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)。通過使用 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#使用WebClient實(shí)現(xiàn)文件上傳的操作步驟
這篇文章主要介紹了C#使用WebClient實(shí)現(xiàn)文件上傳的操作步驟,文中通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-11-11C#?將數(shù)據(jù)庫(kù)SqlServer數(shù)據(jù)綁定到類中的過程詳解
本文講述的是讀取數(shù)據(jù)庫(kù)中數(shù)據(jù)的常用做法,即將數(shù)據(jù)庫(kù)中的數(shù)據(jù)綁定到創(chuàng)建的類中,再將類綁定到DataGridView的數(shù)據(jù)源中的做法,對(duì)C#將SqlServer數(shù)據(jù)綁定到類中感興趣的朋友一起看看吧2022-06-06基于Avalonia實(shí)現(xiàn)自定義彈窗的示例詳解
對(duì)于使用avalonia的時(shí)候某些功能需要到一些提示,比如異常或者成功都需要對(duì)用戶進(jìn)行提示,所以需要單獨(dú)實(shí)現(xiàn)彈窗功能,并且可以自定義內(nèi)部組件,這一期將手動(dòng)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的小彈窗,并且很容易自定義,希望大家喜歡2023-02-02C# 從Excel讀取數(shù)據(jù)向SQL server寫入
這篇文章主要介紹了C# 從Excel讀取數(shù)據(jù)向SQL server寫入的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03C#與C++?dll之間傳遞字符串string?wchar_t*?char*?IntPtr問題
C#與C++?dll之間傳遞字符串string?wchar_t*?char*?IntPtr問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11