使用 C# 在 Word 文檔中創建條形碼

條形碼是具有編碼數據/信息的平行線、點或矩形形式的圖像。行業專家嵌入和訪問產品信息,跟踪產品移動,並使用條形碼跟上庫存。在某些情況下,我們可能需要在 MS Word 文檔中生成和添加條形碼。 MS Word 是最流行和使用最廣泛的圖形文字處理程序。它用於創建包含文本、圖像或圖形的新文檔、撰寫專業品質的文章、編輯和格式化現有文檔等。DOCXDOC 是最受歡迎的MS Word 支持的文件格式。在本文中,我們將學習如何使用 C# 以編程方式在 Word 文檔中創建條形碼。

本文應涵蓋以下主題:

用於在 Word 文檔中創建條形碼的 C# API

要生成條形碼並將條形碼圖像添加到 Word 文檔,我們將遵循兩個步驟。首先,我們將使用 Aspose.Words for .NET API 來創建或加載 Word 文檔,然後我們將使用 [Aspose.BarCode for .NET][ 生成條碼圖像並將其添加到文檔中4] API。 Aspose.Words for .NET API 的 Document 類允許在應用程序中創建新的 Word 文檔或加載現有的 Word 文件。此類的 Save() 方法將文檔保存在給定的文件路徑上。 API 的 DocumentBuilder 類提供了構建文檔的方法。它提供了各種重載的 InsertImage() 方法來在文檔中插入圖像。

Aspose.BarCode for .NET API 允許生成各種支持的條碼類型。為此,它提供了BarcodeGenerator類來生成指定EncodeType的條碼。我們可以使用此類的 Save() 方法保存生成的條形碼圖像。 API 還提供了 BarCodeImageFormat 枚舉來指定保存格式。我們可以使用 API 的 BarCodeReader 類從圖像中讀取條形碼。

下載 API 的 DLL 或使用 NuGet 安裝它們。

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

在 C# 中生成條碼並將其添加到 Word 文檔

我們可以創建一個新的 Word 文檔,並按照以下步驟將條形碼圖像添加到文檔中:

  1. 首先,創建 BarcodeGenerator 類的一個實例。它採用 EncodeType 和要編碼的文本作為參數。
  2. 接下來,創建內存流對象的實例。
  3. 然後,調用 Save() 方法將條碼圖像保存到內存流中。
  4. 接下來,創建 Document 類的一個實例。
  5. 然後,使用 Document 對像初始化 DocumentBuilder 類的一個實例。
  6. 之後,使用 InsertImage() 方法以流對像作為參數插入條形碼圖像。
  7. 最後,調用 Save() 方法。它以輸出 DOCX 文件路徑作為參數。

以下代碼示例顯示如何使用 C# 生成條形碼並將其添加到新的 Word 文檔。

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

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

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

// 新建一個Word文檔
Aspose.Words.Document doc = new Aspose.Words.Document();

// 為文檔對象創建生成器
DocumentBuilder builder = new DocumentBuilder(doc);

// 將條碼圖像插入文檔
builder.InsertImage(ms);

// 保存word文檔
doc.Save(dataDir + "Sample_out.docx");
在 C# 中生成條碼並將其添加到新的 Word 文檔。

在 C# 中生成條碼並將其添加到新的 Word 文檔。

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

我們可以按照以下步驟生成條形碼圖像並將其添加到任何現有的 Word 文檔中:

  1. 首先,使用 EncodeType 和要編碼的文本作為參數創建 BarcodeGenerator 類的實例。
  2. 接下來,創建內存流對象的實例。
  3. 然後,調用 Save() 方法將條碼圖像保存到內存流中。
  4. 接下來,使用 Document 類加載現有的 Word 文檔。
  5. 然後,使用 Document 對像初始化 DocumentBuilder 類的一個實例。
  6. 之後,使用 InsertImage() 方法將流對象及其位置作為參數插入條形碼圖像。
  7. 最後,調用 Save() 方法。它以輸出 DOCX 文件路徑作為參數。

以下代碼示例顯示如何使用 C# 生成條形碼並將其添加到現有 Word 文檔。

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

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

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

// 新建一個Word文檔
Document doc = new Document(dataDir + "sample.docx");

// 為文檔對象創建生成器
DocumentBuilder builder = new DocumentBuilder(doc);

// 將條碼圖像插入文檔
builder.InsertImage(ms,
    RelativeHorizontalPosition.Margin,
    0,
    RelativeVerticalPosition.Margin,
    400,
    200,
    100,
    WrapType.Square);

// 保存word文檔
doc.Save(dataDir + "Sample_out.docx");
在 C# 中向現有 Word 文檔添加條形碼。

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

使用C#將二維碼添加到Word文檔

同樣的,我們也可以按照前面提到的步驟,生成一個二維碼圖片,添加到Word文檔中。但是,我們只需要在第一步中將 EncodeType 設置為 QR 或 GS1QR 即可。我們可能還需要在步驟 6 中調整圖像位置。

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

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

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

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

// 新建一個Word文檔
Document doc = new Document(dataDir + "sample.docx");

// 為文檔對象創建生成器
DocumentBuilder builder = new DocumentBuilder(doc);

// 將條碼圖像插入文檔
builder.InsertImage(ms,
    RelativeHorizontalPosition.Margin,
    400,
    RelativeVerticalPosition.Margin,
    -50,
    100,
    100,
    WrapType.Square);

// 保存word文檔
doc.Save(dataDir + "Sample_qr_out.docx");
使用 C# 將二維碼添加到 Word 文檔。

使用 C# 將二維碼添加到 Word 文檔。

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

我們可以按照以下步驟識別 Word 文檔任何頁面上可用的任何條形碼圖像:

  1. 首先,使用 Document 類加載現有的 Word 文檔。
  2. 接下來,使用 GetChildNodes() 方法訪問 Shape 類型的 NodeCollection
  3. 然後,遍歷所有形狀並檢查形狀是否為圖像。
  4. 接下來,將圖像保存到流中。
  5. 然後,使用圖像流和 DecodeType 作為參數創建 BarCodeReader 類的實例。
  6. 之後調用ReadBarCodes()方法得到BarCodeResult對象。
  7. 最後,顯示條碼信息。

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

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

// 加載word文檔
Document wordDocument = new Document(dataDir + "sample_out.docx");

// 獲取所有形狀
NodeCollection shapes = wordDocument.GetChildNodes(NodeType.Shape, true);

// 遍歷所有形狀
foreach (Shape shape in shapes)
{
  // 檢查它是否有圖像
  if (shape.HasImage)
  {
    // 將圖像保存在內存流中
    MemoryStream imgStream = new MemoryStream();
    shape.ImageData.Save(imgStream);

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

獲得免費許可證

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

結論

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

  • 以編程方式創建 Word 文檔;
  • 生成條碼圖像並添加到Word文檔中;
  • 創建一個 QR 碼並將其插入到 Word 文檔中;
  • 在 C# 中從 Word 文檔中讀取條形碼圖像。

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

也可以看看