Tạo mã vạch trong tài liệu Word bằng C#

Mã vạch là hình ảnh ở dạng đường thẳng song song, dấu chấm hoặc hình chữ nhật với dữ liệu / thông tin được mã hóa. Các chuyên gia trong ngành nhúng và truy cập thông tin sản phẩm, theo dõi chuyển động của sản phẩm và cập nhật hàng tồn kho bằng cách sử dụng mã vạch. Trong một số trường hợp nhất định, chúng tôi có thể cần tạo và thêm mã vạch trong tài liệu MS Word. MS Word là chương trình xử lý văn bản đồ họa phổ biến nhất và được sử dụng rộng rãi. Nó được sử dụng để tạo các tài liệu mới với văn bản, hình ảnh hoặc đồ họa, viết các bản ghi chất lượng chuyên nghiệp, chỉnh sửa và định dạng các tài liệu hiện có, v.v. DOCXDOC là phổ biến các định dạng tệp được hỗ trợ bởi MS Word. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo mã vạch trong tài liệu Word theo chương trình bằng C#.

Các chủ đề sau sẽ được đề cập trong bài viết này:

C# API để tạo mã vạch trong tài liệu Word

Để tạo mã vạch và thêm hình ảnh mã vạch vào tài liệu Word, chúng tôi sẽ thực hiện theo quy trình hai bước. Đầu tiên, chúng tôi sẽ sử dụng API Aspose.Words for .NET để tạo hoặc tải tài liệu Word, sau đó chúng tôi sẽ tạo và thêm hình ảnh mã vạch vào tài liệu bằng cách sử dụng [Aspose.BarCode cho .NET] 4 API. Lớp Tài liệu của API Aspose. AdWords for .NET cho phép tạo tài liệu Word mới hoặc tải tệp Word hiện có trong ứng dụng. Phương thức Save() của lớp này lưu tài liệu trên đường dẫn tệp đã cho. Lớp DocumentBuilder của API cung cấp các phương thức để xây dựng một tài liệu. Nó cung cấp nhiều phương thức InsertImage() được nạp chồng khác nhau để chèn hình ảnh vào tài liệu.

Aspose.BarCode for .NET API cho phép tạo ra nhiều loại mã vạch được hỗ trợ khác nhau. Vì mục đích này, nó cung cấp lớp BarcodeGenerator để tạo mã vạch của EncodeType được chỉ định. Chúng ta có thể lưu hình ảnh mã vạch đã tạo bằng phương thức Save() của lớp này. API cũng cung cấp kiểu liệt kê BarCodeImageFormat để chỉ định các định dạng lưu. Chúng tôi có thể đọc mã vạch từ hình ảnh bằng cách sử dụng lớp BarCodeReader của API.

Vui lòng tải xuống DLL của API hoặc cài đặt chúng bằng NuGet.

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

Tạo và thêm mã vạch vào tài liệu Word trong C#

Chúng tôi có thể tạo tài liệu Word mới và thêm hình ảnh mã vạch vào tài liệu bằng cách thực hiện theo các bước dưới đây:

  1. Đầu tiên, tạo một thể hiện của lớp BarcodeGenerator. Nó sử dụng EncodeType và văn bản để mã hóa làm đối số.
  2. Tiếp theo, tạo một thể hiện của đối tượng dòng bộ nhớ.
  3. Sau đó, gọi phương thức Save() để lưu hình ảnh mã vạch vào dòng bộ nhớ.
  4. Tiếp theo, tạo một thể hiện của lớp Tài liệu.
  5. Sau đó, khởi tạo một thể hiện của lớp DocumentBuilder với đối tượng Document.
  6. Sau đó, chèn hình ảnh mã vạch bằng phương thức InsertImage() với đối tượng luồng làm đối số.
  7. Cuối cùng, gọi phương thức Save(). Nó lấy đường dẫn tệp DOCX đầu ra làm đối số.

Ví dụ mã sau đây cho thấy cách tạo và thêm mã vạch vào tài liệu Word mới bằng C#.

// Ví dụ mã này trình bày cách Tạo và Thêm hình ảnh mã vạch vào tài liệu Word.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"C:\Files\BarCode\";

// Khởi tạo đối tượng mã vạch tuyến tính, Đặt văn bản Mã và loại ký hiệu cho mã vạch
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Code39Standard, "1234567890");

// Tạo luồng bộ nhớ và lưu hình ảnh mã vạch vào luồng bộ nhớ
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Tạo một tài liệu Word mới
Aspose.Words.Document doc = new Aspose.Words.Document();

// Tạo trình xây dựng cho đối tượng tài liệu
DocumentBuilder builder = new DocumentBuilder(doc);

// Chèn hình ảnh mã vạch vào tài liệu
builder.InsertImage(ms);

// Lưu tài liệu từ
doc.Save(dataDir + "Sample_out.docx");
Tạo và thêm Mã vạch vào tài liệu Word mới trong C#.

Tạo và thêm Mã vạch vào tài liệu Word mới trong C#.

Thêm mã vạch vào tài liệu Word hiện có trong C#

Chúng tôi có thể tạo và thêm hình ảnh mã vạch vào bất kỳ tài liệu Word hiện có nào bằng cách làm theo các bước dưới đây:

  1. Đầu tiên, tạo một phiên bản của lớp BarcodeGenerator với EncodeType và văn bản để mã hóa dưới dạng đối số.
  2. Tiếp theo, tạo một thể hiện của đối tượng dòng bộ nhớ.
  3. Sau đó, gọi phương thức Save() để lưu hình ảnh mã vạch vào dòng bộ nhớ.
  4. Tiếp theo, tải tài liệu Word hiện có bằng lớp Tài liệu.
  5. Sau đó, khởi tạo một thể hiện của lớp DocumentBuilder với đối tượng Document.
  6. Sau đó, chèn hình ảnh mã vạch bằng phương thức InsertImage() với đối tượng luồng và vị trí của nó làm đối số.
  7. Cuối cùng, gọi phương thức Save(). Nó lấy đường dẫn tệp DOCX đầu ra làm đối số.

Ví dụ mã sau đây cho thấy cách tạo và thêm mã vạch vào tài liệu Word hiện có bằng C#.

// Ví dụ mã này trình bày cách Tạo và Thêm hình ảnh mã vạch vào tài liệu Word hiện có.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"C:\Files\BarCode\";

// Khởi tạo đối tượng mã vạch tuyến tính, Đặt văn bản Mã và loại ký hiệu cho mã vạch
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Codabar, "1234567890");

// Tạo dòng bộ nhớ và lưu hình ảnh mã vạch vào dòng bộ nhớ
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Tạo một tài liệu Word mới
Document doc = new Document(dataDir + "sample.docx");

// Tạo trình xây dựng cho đối tượng tài liệu
DocumentBuilder builder = new DocumentBuilder(doc);

// Chèn hình ảnh mã vạch vào tài liệu
builder.InsertImage(ms,
    RelativeHorizontalPosition.Margin,
    0,
    RelativeVerticalPosition.Margin,
    400,
    200,
    100,
    WrapType.Square);

// Lưu tài liệu từ
doc.Save(dataDir + "Sample_out.docx");
Thêm mã vạch vào tài liệu Word hiện có trong C#.

Thêm mã vạch vào tài liệu Word hiện có trong C#.

Thêm mã QR vào tài liệu Word bằng C#

Tương tự, chúng ta cũng có thể tạo hình ảnh mã QR và thêm nó vào tài liệu Word bằng cách làm theo các bước đã đề cập trước đó. Tuy nhiên, chúng ta chỉ cần đặt EncodeType là QR hoặc GS1QR ở bước đầu tiên. Chúng tôi cũng có thể cần điều chỉnh vị trí hình ảnh trong bước 6.

Ví dụ mã sau đây minh họa cách thêm mã QR vào tài liệu Word bằng C#.

// Ví dụ về mã này trình bày cách Tạo và Thêm mã QR vào tài liệu Word hiện có.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"C:\Files\BarCode\";

// Khởi tạo đối tượng mã vạch tuyến tính, Đặt văn bản Mã và loại ký hiệu cho mã vạch
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR, "1234567");

// Tạo dòng bộ nhớ và lưu hình ảnh mã vạch vào dòng bộ nhớ
Stream ms = new MemoryStream();
generator.Save(ms, BarCodeImageFormat.Bmp);

// Tạo một tài liệu Word mới
Document doc = new Document(dataDir + "sample.docx");

// Tạo trình xây dựng cho đối tượng tài liệu
DocumentBuilder builder = new DocumentBuilder(doc);

// Chèn hình ảnh mã vạch vào tài liệu
builder.InsertImage(ms,
    RelativeHorizontalPosition.Margin,
    400,
    RelativeVerticalPosition.Margin,
    -50,
    100,
    100,
    WrapType.Square);

// Lưu tài liệu từ
doc.Save(dataDir + "Sample_qr_out.docx");
Thêm mã QR vào tài liệu Word bằng C#.

Thêm mã QR vào tài liệu Word bằng C#.

Đọc mã vạch từ tài liệu Word bằng C#

Chúng tôi có thể nhận ra bất kỳ hình ảnh mã vạch nào có sẵn trên bất kỳ trang nào của tài liệu Word bằng cách thực hiện theo các bước dưới đây:

  1. Đầu tiên, tải một tài liệu Word hiện có bằng cách sử dụng lớp Tài liệu.
  2. Tiếp theo, truy cập NodeCollection của các loại Shape bằng cách sử dụng phương thức GetChildNodes().
  3. Sau đó, lặp qua tất cả các hình dạng và kiểm tra xem hình dạng đó có phải là hình ảnh hay không.
  4. Tiếp theo, lưu hình ảnh vào luồng.
  5. Sau đó, tạo một thể hiện của lớp BarCodeReader với luồng hình ảnh và DecodeType làm đối số.
  6. Sau đó, gọi phương thức ReadBarCodes() để lấy đối tượng BarCodeResult.
  7. Cuối cùng, hiển thị thông tin mã vạch.

Ví dụ mã sau đây cho thấy cách đọc hình ảnh mã vạch từ tài liệu Word bằng C#.

// Ví dụ mã này trình bày cách đọc mã vạch từ tài liệu Word.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"C:\Files\BarCode\";

// Tải tài liệu từ
Document wordDocument = new Document(dataDir + "sample_out.docx");

// Nhận tất cả các hình dạng
NodeCollection shapes = wordDocument.GetChildNodes(NodeType.Shape, true);

// Lặp qua tất cả các hình dạng
foreach (Shape shape in shapes)
{
  // Kiểm tra xem nó có hình ảnh không
  if (shape.HasImage)
  {
    // Lưu hình ảnh trong luồng bộ nhớ
    MemoryStream imgStream = new MemoryStream();
    shape.ImageData.Save(imgStream);

    // Nhận dạng mã vạch từ luồng hình ảnh ở trên
    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

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử thư viện mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, chúng tôi đã học cách:

  • tạo tài liệu Word theo chương trình;
  • tạo một hình ảnh mã vạch và thêm nó vào tài liệu Word;
  • tạo mã QR và chèn vào tài liệu Word;
  • đọc hình ảnh mã vạch từ tài liệu Word trong C#.

Ngoài ra, bạn có thể tìm hiểu thêm về Aspose.BarCode cho .NET API bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm