使用 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 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# 将 QR 码添加到 Word 文档

同样,我们也可以按照前面提到的步骤,生成二维码图片并添加到Word文档中。但是,我们只需在第一步中将 EncodeType 设置为 QR 或 GS1QR。我们可能还需要在步骤 6 中调整图像位置。

以下代码示例演示如何使用 C# 将 QR 码添加到 Word 文档。

// 此代码示例演示如何生成二维码并将其添加到现有 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# 将 QR 码添加到 Word 文档。

使用 C# 将 QR 码添加到 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 文档中;
  • 创建二维码并将其插入 Word 文档;
  • 从 C# 中的 Word 文档中读取条形码图像。

此外,您可以使用 文档 了解更多关于 Aspose.BarCode for .NET API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看