2011-12-15 40 views
5

Tôi đã tìm kiếm các giải pháp và cho đến nay, tốt nhất tôi nghĩ cho dự án của mình là sử dụng phông chữ Code 39 miễn phí. Tuy nhiên, tôi đã thử in một số mẫu và máy quét mã vạch của tôi không thể đọc chúng.Mã vạch (mã 39) thế hệ

Tôi đã nghiên cứu thêm một chút và tình cờ gặp this.

Tôi đã in mã vạch mã 39 bằng thư viện đó và nó hoạt động tốt, máy quét có thể đọc chúng.

Sự cố là thư viện được viết bằng C# nhưng không phải cho ASP.net. Tôi đã thử chơi với mã nhưng nó quá phức tạp đối với kiến ​​thức cơ bản của tôi. Có rất nhiều chức năng được bao gồm trong mã thư viện đó và có rất nhiều loại mã vạch khác, khiến tôi khó phân tích hơn.

Có cách nào khác để tạo mã vạch Mã 39 không? Các thư viện trong codeproject có vẻ hơi phức tạp cho các yêu cầu của tôi.

+3

Bạn có chắc chắn vấn đề xảy ra với máy phát không? Máy quét mã vạch phải được lập trình để chấp nhận các loại mã vạch khác nhau, và hơn thế nữa, khả năng đọc mã vạch phụ thuộc vào chất lượng in cũng như đảm bảo rằng nếu hình ảnh được thay đổi kích thước, nó được thực hiện tương xứng. Tại một thời điểm, các phiếu giảm giá mà chúng tôi cung cấp trực tuyến có mã vạch UPC chuẩn, nhưng nhiều máy in của khách hàng được đặt ở mức chất lượng thấp, cùng một mã vạch chỉ hoạt động khoảng 50% thời gian, vì vậy chúng tôi đã bỏ sử dụng chúng trên trang web của chúng tôi. Chúng tôi chỉ đơn giản là không thể kiểm soát cài đặt máy tính/máy in của khách hàng. – David

+0

Xin chào, tôi cũng đã thử sử dụng một số ứng dụng đọc mã vạch di động và họ vẫn không thể đọc mã vạch được tạo bởi phông chữ mã miễn phí39. (http://www.squaregear.net/fonts/free3of9.shtml) Tuy nhiên, khi tôi cố gắng tạo ra một mã vạch bằng cách sử dụng thư viện này (http://www.codeproject.com/KB/graphics/BarcodeLibrary.aspx) người đọc ứng dụng có thể đọc nó. –

+0

@PodMays Nếu bạn in ra mã vạch từ phông chữ Code39 và từ thư viện, chúng có giống hệt nhau không? Cả hai hình ảnh đều có cạnh sắc nét không? – rsbarro

Trả lời

2

Trước hết, bạn nói thư viện không được viết cho ASP.NET, nhưng nếu bạn có thể tạo hình ảnh với nó thì việc dễ nhất là viết HttpHandler nằm trên thư viện và trả về tạo hình ảnh cho trình duyệt. Nếu đó là một thư viện .NET, tôi không thấy lý do nào tại sao nó không hoạt động.

đó đang được nói, có một vài điều để tìm cho ra khi tạo Mã 39 mã vạch:

  1. bạn đang tạo ra một Mã 39 mã vạch hợp lệ (xem câu trả lời khác, một mã vạch Mã 39 nên bắt đầu và kết thúc bằng *) ?
  2. Mã vạch bạn có đang in đủ mạnh để quét không?

Đối với # 1, tôi sẽ kiểm tra để đảm bảo rằng hình ảnh bạn đang in từ phông chữ Code39 của bạn trông giống như hình ảnh từ thư viện. Nếu có, thì chất lượng hình ảnh có thể là vấn đề.

Theo như số 2, tôi đã sử dụng phông chữ Code 39 miễn phí với GDI + để tạo hình ảnh mã vạch mà sau đó tôi hiển thị trong trang HTML để in. Một trong những vấn đề tôi gặp phải khi cố gắng quét các hình ảnh mã vạch được in là các hình ảnh không đủ sắc nét (các cạnh của các vạch mã vạch bị mờ) và không thể đọc được bởi các máy quét.

Cách tôi chụp các hình ảnh chất lượng thấp là tạo ra hình ảnh mã vạch Code39 lớn (giả sử 1000 x 400), sau đó trên thẻ <img> đã hiển thị mã vạch đó, tôi sẽ đặt chiều rộng thành hình nhỏ hơn nhiều (200px hoặc 2.0 in). Tôi chắc chắn sẽ chỉ đặt chiều rộng, chiều cao sẽ tỷ lệ tương ứng với hình ảnh. Điều đó sẽ làm tăng hiệu quả DPI của hình ảnh khi nó được in, cho phép chúng tôi tạo ra hình ảnh mã vạch dễ dàng quét được (đặc biệt nếu bạn đang in bằng máy in laser).

EDIT

Hầu như quên, một thực hành tốt khác để sử dụng khi tạo ra những mã vạch là luôn in những gì bạn đang mã vạch bên dưới hình ảnh mã vạch. Đó là sự an toàn của bạn trong trường hợp hình ảnh mã vạch sẽ không quét vì bất kỳ lý do gì. Bạn có thể xem ví dụ về điều này nếu bạn nhìn vào bất kỳ biểu tượng UPC chuẩn nào. Các số ở dưới cùng chính xác là mã vạch sẽ đọc khi quét.

5

Máy quét mã vạch yêu cầu mã 39 mã vạch của bạn phải được đặt trước và được gắn dấu hoa thị để đọc. Ví dụ: *12345*

+0

Đây là sự thật về mặt kỹ thuật, nhưng tôi đã tìm thấy ít nhất một thiết bị y tế cấp bệnh viện không biết điều này và bạn phải tạo mã vạch Code39 không hợp lệ cụ thể để quét. – Tremmors

+0

Cảm ơn đầu vào, tôi đã đặt * trong mã của mình. –

+0

điều này đã lưu tôi một thời gian :) –