在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
從 C# 應用程序直接列印 PDF 檔案可以是一個非常有價值的功能,尤其是在開發需要與實體 PDF 文件無縫整合的應用程序時。 無論您是在開發 PDF 文檔管理系統、銷售點應用程式,還是其他與列印相關的軟體,C# 都提供了一套強大的庫來促進這個 PDF 列印方法的功能實現。
為此,Microsoft C# 提供一個print 方法將 PDF 檔案列印至預設印表機。 在本文中,我們將探索使用 C# 將 PDF 文件打印到打印機的步驟。
創建 C# Windows 窗體應用程式
使用關鍵字導入System.Drawing.Printing
設計表單時包含按鈕及其他必要的控制項。
使用 PrintPage 事件處理 PrintDocument 事件
啟動 Print 工作
在開始之前,請確保您已準備好以下先決條件:
C# 開發環境(例如,Visual Studio).
與印表機互動所需的適當權限。
在您偏好的開發環境中創建一個新的 C# 專案或打開一個現有的專案。 確保您的專案配置正確,並且您擁有與印表機互動的必要權限。 以下流程使您能完成此過程:
如果您尚未安裝 Visual Studio,請從官方網站下載並安裝它:Visual Studio.
打開 Visual Studio。
在「建立新專案」對話框中,選擇「Windows Forms 應用程式」(.NET框架)或「Windows Forms 應用程式」(.NET Core)根據您的偏好。
為您的專案提供名稱和位置。
一旦專案建立,主表單將會在設計器中顯示。
使用工具箱按需將控制元件如按鈕、文本框、標籤等添加到您的表單中。
在您的 C# 程式碼檔案中,匯入必要的命名空間,以存取與列印相關的類別和方法。
using System.Drawing.Printing;
using System.Drawing.Printing;
Imports System.Drawing.Printing
這些命名空間提供了必要的類別,例如 PrintDocument、PrintPageEventArgs 和 PrintController 用於處理列印操作。
PrintDocument 類別是 C# 打印功能的基石。 處理其 PrintPage 事件來定義要列印的內容以及格式化方式。 讓我們開始一個簡單的範例,打印文字檔案的內容:
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.txt";
// Read the content of the file
string line = System.IO.File.ReadAllText(filePath);
// Create a Font object (adjust as needed)
Font font = new Font("Arial", 12);
// Create a RectangleF to define the printing area
RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
// Draw the content to the printing area
e.Graphics.DrawString(line, font, Brushes.Black, area);
// Set HasMorePages to false to indicate that there are no more pages to print
e.HasMorePages = false;
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.txt";
// Read the content of the file
string line = System.IO.File.ReadAllText(filePath);
// Create a Font object (adjust as needed)
Font font = new Font("Arial", 12);
// Create a RectangleF to define the printing area
RectangleF area = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);
// Draw the content to the printing area
e.Graphics.DrawString(line, font, Brushes.Black, area);
// Set HasMorePages to false to indicate that there are no more pages to print
e.HasMorePages = false;
}
Private Sub printDocument1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
' Specify the file path
Dim filePath As String = "C:\path\to\your\file.txt"
' Read the content of the file
Dim line As String = System.IO.File.ReadAllText(filePath)
' Create a Font object (adjust as needed)
Dim font As New Font("Arial", 12)
' Create a RectangleF to define the printing area
Dim area As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height)
' Draw the content to the printing area
e.Graphics.DrawString(line, font, Brushes.Black, area)
' Set HasMorePages to false to indicate that there are no more pages to print
e.HasMorePages = False
End Sub
此範例會讀取文字檔案的內容,並使用指定的字體和格式進行列印。
透過建立 PrintDocument 類別的實例來啟動列印作業,附加 PrintPage 事件處理程序,然後觸發列印過程。 (選擇性)您可以顯示打印對話框以供用戶配置:
private void btnPrint_Click(object sender, EventArgs e)
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
// Optionally, display a print dialog for user configuration
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
pd.PrinterSettings = printDialog.PrinterSettings;
pd.Print();
}
}
private void btnPrint_Click(object sender, EventArgs e)
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
// Optionally, display a print dialog for user configuration
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
pd.PrinterSettings = printDialog.PrinterSettings;
pd.Print();
}
}
Private Sub btnPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim pd As New PrintDocument()
AddHandler pd.PrintPage, AddressOf printDocument1_PrintPage
' Optionally, display a print dialog for user configuration
Dim printDialog As New PrintDialog()
If printDialog.ShowDialog() = DialogResult.OK Then
pd.PrinterSettings = printDialog.PrinterSettings
pd.Print()
End If
End Sub
此代碼創建一個 PrintDocument 實例,附加 PrintPage 事件處理程序,然後打印該文件。 可選的列印對話框允許用戶在開始列印作業之前配置列印設定。 這會將文字文件列印到本地連接的打印機。 如果不存在,則將文件打印至預設的打印機名稱。(Microsoft 打印為 PDF)在列印對話框中,如下所示:
在 C# 控制台應用程式中有效且高效地處理列印功能時,IronPrint 函式庫提供了一個強大的解決方案。
IronPrint是一個由 Iron Software 開發的綜合打印庫,旨在與 .NET 應用程式無縫整合。 無論您是在桌面、網絡或移動專案上工作,IronPrint 提供靈活的 PDF 文件列印功能,支援各種檔案格式並提供可自定義的列印設置。
格式支援:IronPrint 支援多種文件格式,包括 PDF、PNG、HTML、TIFF、GIF、JPEG 和 BITMAP。這種多功能性確保開發人員可以處理不同類型的列印內容。
自訂設定: 開發人員可以根據他們應用程式的需求靈活調整列印設定。 這包括設置 DPI 的選項(每英寸點數),指定紙張方向(豎向或橫向)控制副本數量。
列印對話框: IronPrint 提供了流暢的使用者體驗,允許開發人員在列印之前顯示列印對話框。 這在用戶需要與打印過程互動並選擇特定選項的情境中可能很有用。
跨平台相容性: IronPrint 超越平臺限制,提供與多種環境相容,包括 Windows。(7+),macOS(10+)iOS(11+),以及 Android API 21+(v5 "Lollipop"). 它無縫整合到不同的專案類型中,例如行動專案。(Xamarin、MAUI 及 Avalonia),桌面(WPF、MAUI 和 Windows Avalonia)及主控台(應用程序及庫).
在進行文件列印之前,您需要安裝 IronPrint 程式庫。 您可以使用 NuGet Package Manager Console 輕鬆完成此操作:
Install-Package IronPrint
此命令行將下載並安裝IronPrint庫到您的C#項目中。
安裝 IronPrint 後,您需要在 C# 代碼中初始化它。 匯入 IronPrint 命名空間,並設置授權金鑰以確保正常運行:
using IronPrint;
class Program
{
public static void Main()
{
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
}
}
using IronPrint;
class Program
{
public static void Main()
{
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
}
}
Imports IronPrint
Friend Class Program
Public Shared Sub Main()
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
End Sub
End Class
使用 IronPrint 列印文件非常簡單。 您可以使用打印機類別,指定檔案路徑到 Print 方法以靜默列印 PDF:
using IronPrint;
class Program
{
// static void main
public static void Main()
{
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
// Specify the file path
var document = "C:\\path\\to\\your\\file.pdf";
// Print PDFs
Printer.Print(document);
}
}
using IronPrint;
class Program
{
// static void main
public static void Main()
{
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
// Specify the file path
var document = "C:\\path\\to\\your\\file.pdf";
// Print PDFs
Printer.Print(document);
}
}
Imports IronPrint
Friend Class Program
' static void main
Public Shared Sub Main()
License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
' Specify the file path
Dim document = "C:\path\to\your\file.pdf"
' Print PDFs
Printer.Print(document)
End Sub
End Class
此範例演示了列印 PDF 檔案,但 IronPrint 支援多種檔案格式,包括 PDF、PNG、HTML、TIFF、GIF、JPEG、IMAGE 和 BITMAP。
IronPrint 可讓您自訂列印設定根據您的應用程序需求。 您可以使用 PrintSettings 類別配置如 DPI、複製數量、紙張方向等設置。 以下範例代碼幫助您設置頁面設置並列印 PDF 文件:
using IronPrint;
class Program
{
public static void Main()
{
IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
Console.WriteLine("Printing Started...");
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.pdf";
// Configure print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 300;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Landscape;
// Print the document with custom settings
Printer.Print(filePath, printSettings);
// Print using the Print dialog
Printer.ShowPrintDialog(filePath, printSettings);
}
}
using IronPrint;
class Program
{
public static void Main()
{
IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY";
Console.WriteLine("Printing Started...");
// Specify the file path
string filePath = "C:\\path\\to\\your\\file.pdf";
// Configure print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 300;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Landscape;
// Print the document with custom settings
Printer.Print(filePath, printSettings);
// Print using the Print dialog
Printer.ShowPrintDialog(filePath, printSettings);
}
}
Imports IronPrint
Friend Class Program
Public Shared Sub Main()
IronPrint.License.LicenseKey = "YOUR_IRONPRINT_LICENSE_KEY"
Console.WriteLine("Printing Started...")
' Specify the file path
Dim filePath As String = "C:\path\to\your\file.pdf"
' Configure print settings
Dim printSettings As New PrintSettings()
printSettings.Dpi = 300
printSettings.NumberOfCopies = 2
printSettings.PaperOrientation = PaperOrientation.Landscape
' Print the document with custom settings
Printer.Print(filePath, printSettings)
' Print using the Print dialog
Printer.ShowPrintDialog(filePath, printSettings)
End Sub
End Class
以下是輸出的樣子:
如果實體印表機未安裝,則使用預設印表機來列印 PDF 文件。 要獲取所有可用的打印機,您也可以使用GetPrinterNames方法。
// Retrieve printers' name
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
Console.WriteLine(printer);
}
// Retrieve printers' name
List<string> printersName = Printer.GetPrinterNames();
foreach (string printer in printersName)
{
Console.WriteLine(printer);
}
' Retrieve printers' name
Dim printersName As List(Of String) = Printer.GetPrinterNames()
For Each printer As String In printersName
Console.WriteLine(printer)
Next printer
欲了解更多詳細信息,請訪問文檔頁面。
在 C# 中列印檔案是一項可管理的任務,這得益於 System.Drawing.Printing 命名空間提供的功能。 通過處理 PrintPage 事件並使用 PrintDocument 類別,您可以根據特定需求自定義列印過程。 這本綜合指南涵蓋了從 C# 應用程式列印檔案的基本步驟,為您提供了一個將此功能整合到專案中的堅實基礎。 隨著我們進一步探索,我們查看了IronPrint以獲取額外的自定義選項,例如處理不同的文件類型、整合圖像以及根據應用程式的需求增強格式設定。
將 IronPrint 整合到您的 C# 應用程式中可以簡化將檔案列印至印表機的過程。 IronPrint 支援多種檔案格式及可自訂的列印設定,為尋求增強列印能力的開發者提供強大的解決方案。 無論您是在進行桌面、網路或行動專案,IronPrint 簡化了打印過程,使其成為您的 .NET 工具包中有價值的新增項目。