跳過到頁腳內容
使用 IRONPRINT

如何在 C# 中打印 QR 代碼

二維碼,或稱為快速響應碼,在我們的數位時代已經無所不在。 它們以白色背景上的黑色方塊矩陣形式儲存訊息,可以使用智慧型手機或專用二維碼閱讀器進行掃描。 這些使用 .NET 條碼 DLL 的二維碼/條碼可用於各種用途,包括產品標籤、行動支付和行銷資料。 列印二維碼對於無縫整合實體和數位互動至關重要。

在本文中,我們將首先使用二維碼產生器庫IronQR在 C# 中產生二維碼,然後使用IronPDF將其轉換為 PDF 最後使用 C# IronPrint庫列印帶有二維碼圖像的像素完美文件。

如何在 C# 列印二維碼

  1. 建立一個 Visual Studio 項目
  2. 安裝IronQRIronPDFIronPrint
  3. 使用QrWriter.Write()方法建立二維碼
  4. 使用SaveAs方法將產生的二維碼儲存為影像。
  5. 使用 IronPDF 的ImageToPdfConverter建立 PDF 文檔
  6. 使用 IronPrint 調整印表機設置
  7. 使用 IronPrint 的Printer.Print()方法進行列印

IronPrint - C# 列印庫

IronPrintIron Software開發,是一個功能強大的 .NET 列印庫,提供了一套用於在 C# 中處理列印任務的多功能工具。 它支援多種環境,包括 Windows、macOS、Android 和 iOS。 在本文中,我們將探討如何利用 IronPrint 與 IronQR 和 IronPDF 結合,在 C# 主機應用程式中建立、轉換和列印二維碼。

IronPrint 的特點

IronPrint 的獨特之處在於它擁有專門針對列印相關功能而設計的類別和方法。 主要功能包括

*全面的列印設定:* IronPrint 可讓開發人員自訂列印過程的各個方面,例如紙張尺寸、方向、DPI、份數、印表機名稱、邊距和灰階列印。 使用 Printer 類別實現多功能列印:此程式庫引入了Printer**類,提供了一套全面的方法,用於列印各種文件類型,包括圖像和 PDF 文件。 *跨平台支援: IronPrint 支援跨多個平台進行列印,使其適用於各種應用。

先決條件

在開始學習如何使用 C# 建立用於列印二維碼的控制台應用程式之前,請確保您已具備以下先決條件:

  1. Visual Studio:安裝 Microsoft Visual Studio,這是一個功能強大的 C# 整合開發環境。 你可以從其官方網站下載。
  2. IronQR 函式庫:該函式庫對於產生二維碼至關重要。 可以使用 NuGet 控制台或直接從IronQR NuGet 官方網站安裝。
  3. IronPDF 庫: IronPDF將用於將生成的二維碼條碼影像轉換為 PDF。 使用相同的 NuGet 安裝方法進行安裝。
  4. IronPrint 庫:最後,安裝IronPrint庫,以便在您的 C# 應用程式中實現無縫列印。

在 Visual Studio 中建立 C# 控制台應用程式

請依照下列步驟在 Visual Studio 中設定 C# 控制台應用程式:

  1. 開啟 Visual Studio 並建立一個新的 C# 控制台應用程式
  2. 依下列方式配置項目,然後按一下"下一步"。

    ![如何在 C# 中列印二維碼:圖 1 - 透過指定項目名稱、位置和解決方案名稱來設定新的 C# 控制台應用程式項目。 然後點擊"下一步"按鈕。

  3. 接下來,要查看更多信息,請選擇 .NET Framework 並點擊"建立"。

透過 NuGet 套件管理器安裝必要的庫

請依照以下步驟安裝必要的程式庫:

  1. 在 Visual Studio 專案中,使用"工具"功能表或"解決方案資源管理器"開啟 NuGet 套件管理器控制台或 NuGet 解決方案套件管理器。
  2. 安裝IronQR二維碼庫:

    • 使用 NuGet 套件管理器控制台,新增以下命令:

      Install-Package IronPrint
    • 使用 NuGet 管理解決方案套件:在 NuGet 的瀏覽標籤中,搜尋"IronQR"二維碼庫,然後按一下"安裝"。

    如何在 C# 中列印二維碼:圖 2 - 透過搜尋"IronQR"使用"管理解決方案的 NuGet 套件"安裝 IronQR

  3. 安裝IronPDF PDF 庫:

    • 使用 NuGet 套件管理器控制台,輸入以下命令:

      Install-Package IronPrint
    • 使用 NuGet 管理解決方案套件:在 NuGet 的瀏覽標籤中,搜尋"IronPDF"庫,然後按一下"安裝"。

    如何在 C# 中列印二維碼:圖 3 - 透過搜尋"IronPDF"使用"管理解決方案的 NuGet 套件"安裝 IronPDF

  4. 安裝IronPrint列印庫:

    • 使用 NuGet 套件管理器控制台,新增以下命令:

      Install-Package IronPrint
    • 使用 NuGet 管理解決方案套件:在 NuGet 的瀏覽標籤中,搜尋"IronPrint"庫,然後按一下安裝。

    如何在 C# 中列印二維碼:圖 4 - 透過搜尋"IronPrint"使用"管理解決方案的 NuGet 套件"安裝 IronPrint

建立、轉換和列印二維碼的步驟

讓我們使用 IronQR、IronPDF 和 IronPrint,一步一步地分解創建二維碼、將二維碼轉換為 PDF 以及最終列印二維碼產生器輸出的過程。

列印 C# 二維碼的逐步指南

第一步:參考資料庫

在頂部的 Program.cs 檔案中,我們將包含對所需庫的引用。 這樣可以確保庫檔案已安裝並可供使用。

// Reference to libraries
using IronPrint;                    // Library for printing functionalities
using IronPdf;                      // Library for PDF handling
using IronQr;                       // Library for QR code generation
using IronSoftware.Drawing;         // Library for image processing
// Reference to libraries
using IronPrint;                    // Library for printing functionalities
using IronPdf;                      // Library for PDF handling
using IronQr;                       // Library for QR code generation
using IronSoftware.Drawing;         // Library for image processing
' Reference to libraries
Imports IronPrint ' Library for printing functionalities
Imports IronPdf ' Library for PDF handling
Imports IronQr ' Library for QR code generation
Imports IronSoftware.Drawing ' Library for image processing
$vbLabelText   $csharpLabel

步驟 2:使用 IronQR 建立二維碼

首先,我們將使用IronQR生成二維碼,然後將其儲存為圖像,如下面的程式碼範例所示:

// Code to create a QR code using IronQR
QrCode myQr = QrWriter.Write("Hello IronPrint!");  // Generate a QR code with the message
AnyBitmap qrImage = myQr.Save();                   // Save QR code as an image
qrImage.SaveAs("assets/qr.png");                   // Save the png image file to the "assets" folder
// Code to create a QR code using IronQR
QrCode myQr = QrWriter.Write("Hello IronPrint!");  // Generate a QR code with the message
AnyBitmap qrImage = myQr.Save();                   // Save QR code as an image
qrImage.SaveAs("assets/qr.png");                   // Save the png image file to the "assets" folder
' Code to create a QR code using IronQR
Dim myQr As QrCode = QrWriter.Write("Hello IronPrint!") ' Generate a QR code with the message
Dim qrImage As AnyBitmap = myQr.Save() ' Save QR code as an image
qrImage.SaveAs("assets/qr.png") ' Save the png image file to the "assets" folder
$vbLabelText   $csharpLabel

在這段程式碼片段中:

  • 使用QrWriter類別產生包含訊息"Hello IronPrint!"的二維碼。 Write()方法允許產生帶有訊息甚至數字資料的二維碼。 然後,將二維碼儲存為AnyBitmap文件,這是 IronSoftware 提供的通用相容的 C# Bitmap 類別。
  • 二維碼映像以"qr.png"的名稱儲存到"assets"資料夾中。

以下是二維碼輸出結果:

如何在 C# 中列印二維碼:圖 5 - 二維碼輸出影像:qr.png

步驟 3:使用 IronPDF 將二維碼影像轉換為 PDF

接下來,我們將使用IronPDF將二維碼影像轉換為 PDF 。 PDF 文件能夠保留文件格式,適合共享和列印。 這裡,每個圖像檔案都將放置在單獨的 PDF 文件頁面上。

// Code to convert QR Image to PDF using IronPDF
var imageFiles = Directory.EnumerateFiles("assets").Where(f => f.EndsWith(".jpg") || f.EndsWith(".png"));  // Reading QR codes image files
// Convert the QR code images to a PDF and save it
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("assets/composite.pdf");
// Code to convert QR Image to PDF using IronPDF
var imageFiles = Directory.EnumerateFiles("assets").Where(f => f.EndsWith(".jpg") || f.EndsWith(".png"));  // Reading QR codes image files
// Convert the QR code images to a PDF and save it
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("assets/composite.pdf");
' Code to convert QR Image to PDF using IronPDF
Dim imageFiles = Directory.EnumerateFiles("assets").Where(Function(f) f.EndsWith(".jpg") OrElse f.EndsWith(".png")) ' Reading QR codes image files
' Convert the QR code images to a PDF and save it
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("assets/composite.pdf")
$vbLabelText   $csharpLabel

在這段程式碼片段中:

首先,它會遍歷"assets"資料夾中擴展名為".jpg"或".png"的圖片文件,然後從目錄中讀取二維碼。

  • 使用 IronPDF 中的ImageToPdfConverter.ImageToPdf()方法將影像轉換為名為"composite.pdf"的 PDF 檔案。

以下是輸出結果:

如何在 C# 中列印二維碼:圖 6 - 輸出包含二維碼影像的 PDF 檔案:composite.pdf

步驟 4:使用 IronPrint 列印 PDF

最後,我們將使用IronPrint (一個功能強大的列印庫)來列印產生的 PDF 文件,並設定印表機參數。

// Code for Printing using IronPrint
// Get available printer names
List<string> printerNames = Printer.GetPrinterNames();
// Create print settings object
PrintSettings printerSettings = new PrintSettings();
foreach(string printerName in printerNames)
{
    // Set desired printer name
    if(printerName.Equals("Microsoft Print to PDF"))
        printerSettings.PrinterName = printerName;
}
//Configure print setting
printerSettings.PaperSize = PaperSize.A4;                    // Set paper size
Margins margins = new Margins(30,10);                        // Set paper margins
printerSettings.PaperMargins = margins;                      // Apply margins
Printer.Print("assets/composite.pdf", printerSettings);      // Print the PDF
// Code for Printing using IronPrint
// Get available printer names
List<string> printerNames = Printer.GetPrinterNames();
// Create print settings object
PrintSettings printerSettings = new PrintSettings();
foreach(string printerName in printerNames)
{
    // Set desired printer name
    if(printerName.Equals("Microsoft Print to PDF"))
        printerSettings.PrinterName = printerName;
}
//Configure print setting
printerSettings.PaperSize = PaperSize.A4;                    // Set paper size
Margins margins = new Margins(30,10);                        // Set paper margins
printerSettings.PaperMargins = margins;                      // Apply margins
Printer.Print("assets/composite.pdf", printerSettings);      // Print the PDF
' Code for Printing using IronPrint
' Get available printer names
Dim printerNames As List(Of String) = Printer.GetPrinterNames()
' Create print settings object
Dim printerSettings As New PrintSettings()
For Each printerName As String In printerNames
	' Set desired printer name
	If printerName.Equals("Microsoft Print to PDF") Then
		printerSettings.PrinterName = printerName
	End If
Next printerName
'Configure print setting
printerSettings.PaperSize = PaperSize.A4 ' Set paper size
Dim margins As New Margins(30,10) ' Set paper margins
printerSettings.PaperMargins = margins ' Apply margins
Printer.Print("assets/composite.pdf", printerSettings) ' Print the PDF
$vbLabelText   $csharpLabel

在這段原始碼片段中:

  • 使用Printer.GetPrinterNames()取得可用的印表機名稱。
  • 設定所需的印表機名稱(在本例中為"Microsoft Print to PDF",以示範列印過程)。 如果未指定,則將使用連接的預設印表機。
  • 配置列印設置,指定紙張尺寸為 A4 並設定邊距。 Margins 結構體有多個重載,並且還提供了 Top、Bottom、Left 和 Right 等字段,可根據需要設定邊距。
  • 使用Printer.Print()列印 PDF。 第一個參數是要列印的文件的路徑,第二個參數是printerSettings如果已指定)。

以下是列印文件的輸出結果。這顯示了圖像的列印效果:

如何在 C# 中列印二維碼:圖 7 - 輸出列印檔案:composite.pdf

使用IronPrint向實體印表機列印要容易得多。 要在列印時獲得更多控制,可以使用ShowPrintDialog()方法。 有關如何有效列印的更多信息,請訪問此文檔頁面

IronPrint 在 C# 列印方面的優勢

IronPrint是一款專為 .NET 應用程式設計的強大列印庫。 與主要專注於處理 PDF 相關任務的IronPDF和作為通用列印機制的 Microsoft 列印不同, IronPrint提供了一組專門的類別和方法,用於對列印過程進行精細控制。

透過IronPrint ,開發人員可以利用以下優勢:

1. 非同步列印

IronPrint 提供非同步功能,防止列印操作阻塞線程,從而提高效能。

2. 多功能印刷

IronPrint 中的專用印表機類別支援多種文件類型的靈活列印,提供了超越標準列印的靈活性。

3. 跨平台支持

IronPrint 支援多種平台,包括 Windows、Android、iOS 和 macOS,使其適用於各種應用環境。

4. 可自訂的列印設定

開發人員可以透過PrintSettings類別精細控制列印設置,包括紙張尺寸、方向、DPI、份數等等。

結論

總而言之, IronPrintIronQRIronPDF的組合為在 C# 中建立、轉換和列印二維碼提供了一個強大的解決方案。 IronPrint具有非同步列印、多種列印選項和跨平台支援等優勢,使其成為開發人員的寶貴工具。 按照本指南中概述的詳細步驟,您可以產生二維碼條碼,並將其列印無縫整合到您的 C# 應用程式中,從而彌合實體互動和數位互動之間的差距。

IronPrint提供免費試用,起價為$799 。 從這裡下載庫檔案並試用一下。

常見問題解答

如何在 C# 中產生 QR 代碼?

若要在 C# 中產生 QR 碼,請使用 IronQR 函式庫。您可以利用 IronQR 的 QrWriter.Write() 方法來製作 QR 碼,以產生包含所需訊息或資料的 QR 碼。

如何在 C# 中將 QR 碼影像轉換為 PDF?

您可以使用 IronPDF 的 ImageToPdfConverter.ImageToPdf() 方法,在 C# 中將 QR 碼影像轉換為 PDF。此功能可讓您毫不費力地將圖檔轉換成 PDF 文件。

使用 C# 列印 QR 碼涉及哪些步驟?

步驟包括使用 IronQR 產生 QR 碼,使用 IronPDF 將其轉換為 PDF,最後以您指定的設定使用 IronPrint 的 Printer.Print() 方法列印文件。

是否可以在 C# 中自訂 QR 碼列印的列印設定?

是的,您可以使用 IronPrint 的 PrintSettings 類自訂列印設定。它允許您指定紙張大小、方向、DPI、邊界和其他設定,以滿足您的列印需求。

我可以在不同的作業系統上使用此列印方式嗎?

是的,IronPrint 支援跨平台列印功能,使其相容於各種作業系統,包括 Windows、macOS、Android 和 iOS。

使用 IronPrint 列印 QR 碼有哪些好處?

IronPrint 具有異步列印、支援多種檔案類型、跨平台相容性以及可自訂列印設定等優點,是 C# 列印任務的有效選擇。

在 C# 中列印 QR 碼時,如何排除故障?

常見的疑難排解步驟包括確保所有必要的函式庫都已正確安裝、檢查 IronPrint 中的列印設定,以及驗證 QR 代碼產生和 PDF 轉換過程是否有任何錯誤。

購買 IronPrint 之前有沒有試用的方法?

是的,IronPrint 提供免費試用,讓您可以探索其功能,並在做出購買決定之前評估其與 C# 應用程式的整合。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。