使用 C# 將條形碼添加到 PDF

PDF 是最流行的共享和打印文檔格式。許多組織使用 PDF 作為生成報告和共享其他官方文檔的標準格式。在某些情況下,我們可能需要將有關文檔、產品或公司的特定數據或信息作為條形碼圖像嵌入到 PDF 文檔中。我們可以在 .NET 應用程序中以編程方式將機器可讀的條形碼圖像添加到 PDF 文檔。在本文中,我們將學習如何使用 C# 向 PDF 文檔添加條形碼。

文章應涵蓋以下主題:

將條碼添加到 PDF 的 C# API

要將條形碼添加到 PDF 文檔,我們將遵循兩個步驟。首先,我們將使用 Aspose.PDF for .NET API 創建或加載 PDF 文檔,然後我們將使用 [Aspose.BarCode for .NET][ 生成條碼圖像並將其添加到 PDF 中3] API。請 下載 API 的 DLL 或使用 NuGet 安裝它們。

PM> Install-Package Aspose.BarCode
PM> Install-Package Aspose.PDF

在 C# 中創建 PDF 文檔並添加條形碼

我們可以按照下面給出的步驟創建一個新的 PDF 文檔並向 PDF 添加條形碼圖像:

  1. 首先,使用 EncodeType 和要編碼的文本作為參數創建 BarcodeGenerator 類的實例。
  2. 接下來,創建內存流對象的實例
  3. 然後,調用Save()方法將條碼圖像保存到內存流中。
  4. 接下來,創建 Document 類的實例。
  5. 然後,在新建的PDF文檔中添加一個page
  6. 接下來,創建 PdfFileMend 類的實例。
  7. 然後,用文檔對象調用 BindPdf() 方法來綁定它。
  8. 接下來,使用流對象和圖像位置坐標作為參數調用 AddImage() 方法。
  9. 之後,使用 Save() 方法保存 PDF。它以輸出 PDF 文件路徑作為參數。
  10. 最後調用Close()方法關閉PdfFileMend對象。

以下代碼示例演示瞭如何使用 C# 創建新的 PDF 文檔並添加條形碼圖像。

// 此代碼示例演示如何將條形碼圖像添加到 PDF。
// 文檔目錄的路徑。
string dataDir = @"D:\Files\BarCode\";

// 實例化線性條形碼對象,設置條形碼的代碼文本和符號類型
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code39Standard, "1234567");

// 創建內存流並將條碼圖像保存到內存流
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// 創建 PDF 文檔並向文檔添加頁面
Document doc = new Document();
doc.Pages.Add();

// 打開文檔
PdfFileMend mender = new PdfFileMend();

// 綁定PDF添加條碼
mender.BindPdf(doc);

// 在 PDF 文件中添加條形碼圖像
mender.AddImage(ms, 1, 100, 600, 200, 700);

// 保存更改
mender.Save(dataDir + "AddImage_out.pdf");

// 關閉 PdfFileMend 對象
mender.Close();
在 C# 中創建 PDF 文檔和添加條形碼。

在 C# 中創建 PDF 文檔和添加條形碼。

在 C# 中向現有 PDF 文檔添加條形碼

我們還可以將條形碼圖像添加到現有 PDF 文檔的任何頁面。 AddImage() 方法允許將圖像添加到指定坐標處的 PDF 文檔的指定頁面。我們可以按照以下步驟將圖像插入現有的 PDF 文檔中:

  1. 首先,使用 EncodeType 和要編碼的文本作為參數創建 BarcodeGenerator 類的實例。
  2. 接下來,創建內存流對象的實例
  3. 然後,調用Save()方法將條碼圖像保存到內存流中。
  4. 接下來,使用 Document 類加載 PDF 文檔。
  5. 然後,創建 PdfFileMend 類的一個實例。
  6. 接下來,使用 Document 對象調用 BindPdf() 方法來綁定它。
  7. 然後,以流對象、頁碼和圖像位置坐標作為參數調用 AddImage() 方法。
  8. 之後,使用 Save() 方法保存 PDF。它以輸出 PDF 文件路徑作為參數。
  9. 最後,調用 Close() 方法關閉 PdfFileMend 對象。

以下代碼示例演示瞭如何使用 C# 將條形碼圖像添加到現有 PDF 文檔。

// 此代碼示例演示如何將條形碼圖像添加到現有 PDF。
// 文檔目錄的路徑。
string dataDir = @"D:\Files\BarCode\";

// 實例化線性條形碼對象,設置條形碼的代碼文本和符號類型
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code39Standard, "1234567");

// 創建內存流並將條碼圖像保存到內存流
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// 加載 PDF 文檔
Document doc = new Document(dataDir + "sample.pdf");

// 打開文檔
PdfFileMend mender = new PdfFileMend();

// 綁定PDF添加條碼圖片
mender.BindPdf(doc);

// 在 PDF 文件中添加條形碼圖像
mender.AddImage(ms, 1, 70, 0, 200, 600);

// 保存更改
mender.Save(dataDir + "Sample_out.pdf");

// 關閉 PdfFileMend 對象
mender.Close();
在 C# 中向現有 PDF 文檔添加條形碼。

在 C# 中向現有 PDF 文檔添加條形碼。

在 C# 中將 QR 碼添加到 PDF 文檔

同樣,我們也可以按照前面提到的步驟給PDF文檔添加二維碼。但是,我們只需要在第一步中將 EncodeType 設置為 QR。我們可能還需要在步驟 # 7 中調整圖像位置。

下面的代碼示例演示瞭如何使用 C# 將二維碼添加到 PDF 文檔。

// 此代碼示例演示如何將 QR 碼添加到現有 PDF。
// 文檔目錄的路徑。
string dataDir = @"D:\Files\BarCode\";

// 實例化線性條形碼對象,設置條形碼的代碼文本和符號類型
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR, "1234567");

// 創建內存流並將條碼圖像保存到內存流
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// 加載 PDF 文檔
Document doc = new Document(dataDir + "sample.pdf");

// 打開文檔
PdfFileMend mender = new PdfFileMend();

// 綁定PDF添加條碼圖片
mender.BindPdf(doc);

// 在 PDF 文件中添加 QR 圖像
mender.AddImage(ms, 1, 0, 650, 200, 780);

// 保存更改
mender.Save(dataDir + "Sample_QR_out.pdf");

// 關閉 PdfFileMend 對象
mender.Close();
在 C# 中將二維碼添加到 PDF 文檔。

在 C# 中將二維碼添加到 PDF 文檔。

使用 C# 從 PDF 文檔中讀取條形碼

我們可以使用 PdfExtractor 類識別嵌入在 PDF 文檔任何頁面上的任何條形碼圖像。它允許從PDF中提取圖像,然後我們將從提取的圖像中讀取條碼信息。我們可以按照以下步驟從 PDF 文檔中讀取條形碼:

  1. 首先,創建 PdfExtractor 類的一個實例。
  2. 接下來,使用 BindPdf() 方法綁定輸入的 PDF 文檔。
  3. 然後,設置圖像提取的頁面範圍。
  4. 接下來,調用 ExtractImage() 方法來提取圖像。
  5. 然後,將圖像保存到循環流中。
  6. 接下來,使用圖像流和 DecodeType 作為參數創建 BarCodeReader 類的實例。
  7. 之後調用ReadBarCodes()方法得到BarCodeResult對象。
  8. 最後,顯示條碼信息。

下面的代碼示例演示瞭如何使用 C# 從 PDF 文檔中讀取條形碼圖像。

// 此代碼示例演示如何從 PDF 中讀取條形碼
// 文檔目錄的路徑。
string dataDir = @"D:\Files\BarCode\sample_out.pdf";

// 綁定pdf文檔
Aspose.Pdf.Facades.PdfExtractor pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor();
pdfExtractor.BindPdf(dataDir);

// 設置圖像提取的頁面範圍
pdfExtractor.StartPage = 1;
pdfExtractor.EndPage = 1;

// 提取圖像
pdfExtractor.ExtractImage();

// 將圖像保存到循環流中
while (pdfExtractor.HasNextImage())
{
  // 將圖像保存到流
  MemoryStream imageStream = new MemoryStream();
  pdfExtractor.GetNextImage(imageStream);
  imageStream.Position = 0;

  // 從上面的圖像流中識別條形碼
  using (BarCodeReader reader = new BarCodeReader(imageStream, DecodeType.Code39Standard))
  {
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
      Console.WriteLine("Codetext found: " + result.CodeText);
      Console.WriteLine("Symbology: " + result.CodeType);
    }
  }
}
Codetext found: 1234567
Symbology: Code39Standard

獲得免費許可證

您可以 獲得免費的臨時許可證 來試用該庫,而沒有評估限制。

結論

在本文中,我們學習瞭如何:

  • 以編程方式創建 PDF 文檔;
  • 在 C# 中生成條形碼圖像並將其添加到 PDF;
  • 使用 C# 從 PDF 文檔中提取圖像;
  • 從 PDF 文檔中讀取條形碼圖像。

此外,您可以使用文檔了解更多關於 Aspose.BarCode for .NET API 的信息。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看