條形碼是具有編碼數據/信息的平行線、點或矩形形式的圖像。行業專家嵌入和訪問產品信息,跟踪產品移動,並使用條形碼跟上庫存。在某些情況下,我們可能需要在 MS Word 文檔中生成和添加條形碼。 MS Word 是最流行和使用最廣泛的圖形文字處理程序。它用於創建包含文本、圖像或圖形的新文檔、撰寫專業品質的文章、編輯和格式化現有文檔等。DOCX 和 DOC 是最受歡迎的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 文檔,並按照以下步驟將條形碼圖像添加到文檔中:
- 首先,創建 BarcodeGenerator 類的一個實例。它採用 EncodeType 和要編碼的文本作為參數。
- 接下來,創建內存流對象的實例。
- 然後,調用 Save() 方法將條碼圖像保存到內存流中。
- 接下來,創建 Document 類的一個實例。
- 然後,使用 Document 對像初始化 DocumentBuilder 類的一個實例。
- 之後,使用 InsertImage() 方法以流對像作為參數插入條形碼圖像。
- 最後,調用 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 文檔添加條形碼
我們可以按照以下步驟生成條形碼圖像並將其添加到任何現有的 Word 文檔中:
- 首先,使用 EncodeType 和要編碼的文本作為參數創建 BarcodeGenerator 類的實例。
- 接下來,創建內存流對象的實例。
- 然後,調用 Save() 方法將條碼圖像保存到內存流中。
- 接下來,使用 Document 類加載現有的 Word 文檔。
- 然後,使用 Document 對像初始化 DocumentBuilder 類的一個實例。
- 之後,使用 InsertImage() 方法將流對象及其位置作為參數插入條形碼圖像。
- 最後,調用 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文檔
同樣的,我們也可以按照前面提到的步驟,生成一個二維碼圖片,添加到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 文檔中讀取條形碼
我們可以按照以下步驟識別 Word 文檔任何頁面上可用的任何條形碼圖像:
- 首先,使用 Document 類加載現有的 Word 文檔。
- 接下來,使用 GetChildNodes() 方法訪問 Shape 類型的 NodeCollection。
- 然後,遍歷所有形狀並檢查形狀是否為圖像。
- 接下來,將圖像保存到流中。
- 然後,使用圖像流和 DecodeType 作為參數創建 BarCodeReader 類的實例。
- 之後調用ReadBarCodes()方法得到BarCodeResult對象。
- 最後,顯示條碼信息。
下面的代碼示例顯示瞭如何使用 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 的信息。如有任何歧義,請隨時在論壇上與我們聯繫。