Thêm mã vạch vào PDF bằng C#

PDF là định dạng phổ biến nhất để chia sẻ và in tài liệu. Nhiều tổ chức sử dụng PDF làm định dạng tiêu chuẩn để tạo báo cáo và chia sẻ các tài liệu chính thức khác. Trong một số trường hợp nhất định, chúng tôi có thể cần nhúng dữ liệu hoặc thông tin cụ thể về tài liệu, sản phẩm hoặc công ty dưới dạng hình ảnh mã vạch trong tài liệu PDF. Chúng tôi có thể thêm hình ảnh mã vạch có thể đọc được bằng máy vào tài liệu PDF theo lập trình trong các ứng dụng .NET. Trong bài viết này, chúng ta sẽ tìm hiểu cách thêm mã vạch vào tài liệu PDF bằng C#.

Bài báo sẽ bao gồm các chủ đề sau:

C# API để thêm mã vạch vào PDF

Để thêm mã vạch vào tài liệu PDF, chúng tôi sẽ thực hiện theo quy trình gồm hai bước. Đầu tiên, chúng tôi sẽ sử dụng API Aspose.PDF for .NET để tạo hoặc tải tài liệu PDF, sau đó chúng tôi sẽ tạo và thêm hình ảnh mã vạch vào PDF bằng [Aspose.BarCode cho .NET] 3 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.PDF

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

Chúng tôi có thể tạo tài liệu PDF mới và thêm hình ảnh mã vạch vào PDF 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 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 phiên bả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 luồng bộ nhớ.
  4. Tiếp theo, tạo một thể hiện của lớp Tài liệu.
  5. Sau đó, thêm trang vào tài liệu PDF mới được tạo.
  6. Tiếp theo, tạo một thể hiện của lớp PdfFileMend.
  7. Sau đó, gọi phương thức BindPdf() với đối tượng Document để ràng buộc nó.
  8. Tiếp theo, gọi phương thức AddImage() với đối tượng luồng và tọa độ vị trí hình ảnh làm đối số.
  9. Sau đó, lưu tệp PDF bằng phương thức Lưu(). Nó lấy đường dẫn tệp PDF đầu ra làm đối số.
  10. Cuối cùng, gọi phương thức Close() để đóng đối tượng PdfFileMend.

Ví dụ mã sau đây trình bày cách tạo tài liệu PDF mới và thêm hình ảnh mã vạch bằng C#.

// Ví dụ mã này trình bày cách thêm hình ảnh mã vạch vào PDF.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"D:\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, "1234567");

// 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 tài liệu PDF và thêm trang vào tài liệu
Document doc = new Document();
doc.Pages.Add();

// Mở tài liệu
PdfFileMend mender = new PdfFileMend();

// Ràng buộc PDF để thêm mã vạch
mender.BindPdf(doc);

// Thêm hình ảnh mã vạch trong tệp PDF
mender.AddImage(ms, 1, 100, 600, 200, 700);

// Lưu thay đổi
mender.Save(dataDir + "AddImage_out.pdf");

// Đóng đối tượng PdfFileMend
mender.Close();
Tạo tài liệu PDF và thêm mã vạch trong C#.

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

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

Chúng tôi cũng có thể thêm hình ảnh mã vạch vào bất kỳ trang nào của tài liệu PDF hiện có. Phương thức AddImage() cho phép thêm hình ảnh vào trang được chỉ định của tài liệu PDF tại các tọa độ được chỉ định. Chúng tôi có thể chèn hình ảnh vào tài liệu PDF hiện có 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 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 phiên bả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 luồng bộ nhớ.
  4. Tiếp theo, tải tài liệu PDF bằng lớp Tài liệu.
  5. Sau đó, tạo một phiên bản của lớp PdfFileMend.
  6. Tiếp theo, gọi phương thức BindPdf() với đối tượng Document để ràng buộc nó.
  7. Sau đó, gọi phương thức AddImage() với đối tượng luồng, số trang và tọa độ vị trí hình ảnh làm đối số.
  8. Sau đó, lưu tệp PDF bằng phương thức Lưu(). Nó lấy đường dẫn tệp PDF đầu ra làm đối số.
  9. Cuối cùng, gọi phương thức Close() để đóng đối tượng PdfFileMend.

Ví dụ mã sau đây trình bày cách thêm hình ảnh mã vạch vào tài liệu PDF hiện có bằng C#.

// Ví dụ mã này trình bày cách thêm hình ảnh mã vạch vào một tệp PDF hiện có.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"D:\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, "1234567");

// 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ải tài liệu PDF
Document doc = new Document(dataDir + "sample.pdf");

// Mở tài liệu
PdfFileMend mender = new PdfFileMend();

// Liên kết PDF để thêm hình ảnh mã vạch
mender.BindPdf(doc);

// Thêm hình ảnh mã vạch trong tệp PDF
mender.AddImage(ms, 1, 70, 0, 200, 600);

// Lưu thay đổi
mender.Save(dataDir + "Sample_out.pdf");

// Đóng đối tượng PdfFileMend
mender.Close();
Thêm mã vạch vào tài liệu PDF hiện có trong C#.

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

Thêm mã QR vào tài liệu PDF trong C#

Tương tự, chúng ta cũng có thể thêm mã QR vào tài liệu PDF 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 trong 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 # 7.

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

// Ví dụ mã này trình bày cách thêm mã QR vào một tệp PDF hiện có.
// Đường dẫn đến thư mục tài liệu.
string dataDir = @"D:\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 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ải tài liệu PDF
Document doc = new Document(dataDir + "sample.pdf");

// Mở tài liệu
PdfFileMend mender = new PdfFileMend();

// Liên kết PDF để thêm hình ảnh mã vạch
mender.BindPdf(doc);

// Thêm hình ảnh QR trong tệp PDF
mender.AddImage(ms, 1, 0, 650, 200, 780);

// Lưu thay đổi
mender.Save(dataDir + "Sample_QR_out.pdf");

// Đóng đối tượng PdfFileMend
mender.Close();
Thêm mã QR vào tài liệu PDF trong C#.

Thêm mã QR vào tài liệu PDF trong C#.

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

Chúng tôi có thể nhận ra bất kỳ hình ảnh mã vạch nào được nhúng trên bất kỳ trang nào của tài liệu PDF bằng cách sử dụng lớp PdfExtractor. Nó cho phép trích xuất hình ảnh từ PDF, và sau đó chúng ta sẽ đọc thông tin mã vạch từ hình ảnh được trích xuất. Chúng tôi có thể đọc mã vạch từ các tài liệu PDF bằng cách làm theo các bước dưới đây:

  1. Đầu tiên, tạo một thể hiện của lớp PdfExtractor.
  2. Tiếp theo, liên kết tài liệu PDF đầu vào bằng phương thức BindPdf().
  3. Sau đó, đặt phạm vi trang để trích xuất hình ảnh.
  4. Tiếp theo, gọi phương thức ExtractImage() để trích xuất hình ảnh.
  5. Sau đó, lưu hình ảnh để phát trực tiếp trong một vòng lặp.
  6. Tiếp theo, 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ố.
  7. Sau đó, gọi phương thức ReadBarCodes() để lấy đối tượng BarCodeResult.
  8. Cuối cùng là hiển thị thông tin mã vạch.

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

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

// Ràng buộc tài liệu pdf
Aspose.Pdf.Facades.PdfExtractor pdfExtractor = new Aspose.Pdf.Facades.PdfExtractor();
pdfExtractor.BindPdf(dataDir);

// Đặt phạm vi trang để trích xuất hình ảnh
pdfExtractor.StartPage = 1;
pdfExtractor.EndPage = 1;

// Trích xuất hình ảnh
pdfExtractor.ExtractImage();

// Lưu hình ảnh để phát trực tiếp trong một vòng lặp
while (pdfExtractor.HasNextImage())
{
  // Lưu hình ảnh vào luồng
  MemoryStream imageStream = new MemoryStream();
  pdfExtractor.GetNextImage(imageStream);
  imageStream.Position = 0;

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

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 PDF theo chương trình;
  • tạo và thêm hình ảnh mã vạch vào PDF trong C#;
  • trích xuất hình ảnh từ tài liệu PDF bằng C#;
  • đọc hình ảnh mã vạch từ tài liệu PDF.

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