Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] In mã vạch tạo từ access ra máy in mã vạch
#11
Với ý kiến mình phân tích cộng với ý kiến của ongke0711 thì nhất định phải có: Máy đọc mã Vạch + Máy chuyên In mã vạch là tốt nhất.

Thân mến!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#12
In trực tiếp report với barcode hiển thị bằng textbox với máy in laser thông thường không phải là không được nhưng như bạn ongke0711 nói. Khi thiết đặt font size nhỏ rất dễ sai tỷ lệ các nét (Font size lớn không bị vấn đề này). Trường hợp có nhu cầu in với font size nhỏ cần phải có:
1/ Máy in barcode chuyên dùng như bixolon, zebra...
2/ Các phần mềm hỗ trợ: BarTender Enterprise Automation, IDAutomation...
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#13
Hiện Tiên đang dùng máy In Canon 2900 để In mã vạch từ PM "BarTender.Enterprise.Automation.9.4.2760" rất OK. Việc Máy đọc mã vạch đọc tốt hay ko là phụ thuộc vào chất lượng giấy và Máy để In Mã vạch.

Tiên cũng đã thử nhiều cách những khi In từ Access máy quét ko sao đọc được. Tiên nhờ bác sỹ G đc biết có Plug-In mới thực hiện đc. Nhưng phải mua  005 nên chưa thử đc.
Thân./.
Reply
Những người đã cảm ơn
#14
(23-11-15, 11:05 AM)Minh Tiên Đã viết: Hiện Tiên đang dùng máy In Canon 2900 để In mã vạch từ PM "BarTender.Enterprise.Automation.9.4.2760" rất OK. Việc Máy đọc mã vạch đọc tốt hay ko là phụ thuộc vào chất lượng giấy và Máy để In Mã vạch.

Tiên cũng đã thử nhiều cách những khi In từ Access máy quét ko sao đọc được. Tiên nhờ bác sỹ G đc biết có Plug-In mới thực hiện đc. Nhưng phải mua  005 nên chưa thử đc.
Thân./.

Mình đã ứng dụng thành công về in mã vạch trong access nên có chia sẻ như sau:
- thay vì mua Plug-In thì mình sưu tập đoạn code sau, bạn chép về, lưu vào và làm như cách mình là được, máy in thường vẫn in quét dược, không đến nỗi nào.
Code:
Function TriniCode128(RawBarcode as String)
  'Cette fonction est régie par la Licence Générale Publique Amoindrie GNU (GNU LGPL)
  'This function is governed by the GNU Lesser General Public License (GNU LGPL)
  'V 2.0.0
  'Paramètres : une chaine
  'Parameters : a string
  'Retour : * une chaine qui, affichée avec la police CODE128.TTF, donne le code barre
  '         * une chaine vide si paramètre fourni incorrect
  'Return : * a string which give the bar code when it is dispayed with CODE128.TTF font
  '         * an empty string if the supplied parameter is no good
  Dim i, checksum, mini, dummy, tableB As Boolean
  TriniCode128 = ""
  If Len(RawBarcode) > 0 Then
  'Vérifier si caractères valides
  'Check for valid characters
    For i = 1 To Len(RawBarcode)
      Select Case Asc(Mid(RawBarcode, i, 1))
      Case 32 To 126, 203
      Case Else
        i = 0
        Exit For
      End Select
    Next
    'Calculer la chaine de code en optimisant l'usage des tables B et C
    'Calculation of the code string with optimized use of tables B and C
    TriniCode128 = ""
    tableB = True
    If i > 0 Then
      i = 1 'i devient l'index sur la chaine / i become the string index
      Do While i <= Len(RawBarcode)
        If tableB Then
          'Voir si intéressant de passer en table C / See if interesting to switch to table C
          'Oui pour 4 chiffres au début ou à la fin, sinon pour 6 chiffres / yes for 4 digits at start or end, else if 6 digits
          mini = IIf(i = 1 Or i + 3 = Len(RawBarcode), 4, 6)
         
          'si les mini caractères à partir de i sont numériques, alors mini=0
          'if the mini characters from i are numeric, then mini=0
          mini = mini - 1
          If i + mini <= Len(RawBarcode) Then
            Do While mini >= 0
              If Asc(Mid(RawBarcode, i + mini, 1)) < 48 Or Asc(Mid(RawBarcode, i + mini, 1)) > 57 Then Exit Do
              mini = mini - 1
            Loop
          End If
 
          If mini < 0 Then 'Choix table C / Choice of table C
            If i = 1 Then 'Débuter sur table C / Starting with table C
              TriniCode128 = Chr(210)
            Else 'Commuter sur table C / Switch to table C
              TriniCode128 = TriniCode128 & Chr(204)
            End If
            tableB = False
          Else
            If i = 1 Then TriniCode128 = Chr(209) 'Débuter sur table B / Starting with table B
          End If
        End If
        If Not tableB Then
          'On est sur la table C, essayer de traiter 2 chiffres / We are on table C, try to process 2 digits
          mini = 2
          'si les mini caractères à partir de i sont numériques, alors mini=0
          'if the mini characters from i are numeric, then mini=0
          mini = mini - 1
          If i + mini <= Len(RawBarcode) Then
            Do While mini >= 0
              If Asc(Mid(RawBarcode, i + mini, 1)) < 48 Or Asc(Mid(RawBarcode, i + mini, 1)) > 57 Then Exit Do
              mini = mini - 1
            Loop
          End If
          If mini < 0 Then 'OK pour 2 chiffres, les traiter / OK for 2 digits, process it
            dummy = Val(Mid(RawBarcode, i, 2))
            dummy = IIf(dummy < 95, dummy + 32, dummy + 105)
            TriniCode128 = TriniCode128 & Chr(dummy)
            i = i + 2
          Else 'On n'a pas 2 chiffres, repasser en table B / We haven't 2 digits, switch to table B
            TriniCode128 = TriniCode128 & Chr(205)
            tableB = True
          End If
        End If
        If tableB Then
          'Traiter 1 caractère en table B / Process 1 digit with table B
          TriniCode128 = TriniCode128 & Mid(RawBarcode, i, 1)
          i = i + 1
        End If
      Loop
      'Calcul de la clé de contrôle / Calculation of the checksum
      For i = 1 To Len(TriniCode128)
        dummy = Asc(Mid(TriniCode128, i, 1))
        dummy = IIf(dummy < 127, dummy - 32, dummy - 105)
        If i = 1 Then checksum = dummy
        checksum = (checksum + (i - 1) * dummy) Mod 103
      Next
      'Calcul du code ASCII de la clé / Calculation of the checksum ASCII code
      checksum = IIf(checksum < 95, checksum + 32, checksum + 105)
      'Ajout de la clé et du STOP / Add the checksum and the STOP
      TriniCode128 = TriniCode128 & Chr(checksum) & Chr(211)
    End If
  End If
 
End Function
Trong report, 1 textbox bạn để mã cần in nhưng font Arial(VD là txtA), 1 textbox kia font Code128, data=TriniCode128(txtA) sẽ là mã vạch cần in.
Theo mình biết, máy quét mã vạch đọc được gồm font mã vạch, code để hiển thị ấn định ký tự bắt đầu, ký tự kết thúc và checksum của chuỗi. Và Function trên làm việc đó.
Chúc bạn thành công.
Chữ ký của nguyenichtri Chia sẻ chân thành là cách thêm kiến thức cho mình và bạn bè.
014
Reply
Những người đã cảm ơn hieuvn , Minh Tiên , tranthanhan1962 , thanhtruong , maidinhdan
#15
Hôm nay mình đã có máy quét, quét được code 128

Nhưng sao cái font code 128 của anh tranthanhan1962 khi in ra thì máy quét lại không quét được

Xin cho lời bình?
Chữ ký của thanhtruong Xin chào, mình là thanhtruong, Tham gia http://thuthuataccess.com/forum từ ngày 23-06 -14.
Reply
Những người đã cảm ơn
#16
(29-11-15, 02:33 PM)thanhtruong Đã viết: Hôm nay mình đã có máy quét, quét được code 128

Nhưng sao cái font code 128 của anh tranthanhan1962 khi in ra thì máy quét lại không quét được

Xin cho lời bình?

Xem lại bài #8 đến #11.

Có lẽ phải cần đến máy chuyên in Mã vạch.
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#17
Theo tôi biết nếu tạo mã vạch bằng font, thì font size phải 36pt trở lên máy in ra mới có khả năng chính xác và máy in có độ phân giải 300 dpi (hình như hiện nay các máy in laser điều có dpi cao).
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan
#18
Để T7, CN tuần này ̣mình thử code của bạn nguyenichtri ở bài 14 thử máy scan có đọc được ko ?
Thân./.
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#19
(29-11-15, 02:33 PM)thanhtruong Đã viết: Hôm nay mình đã có máy quét, quét được code 128

Nhưng sao cái font code 128 của anh tranthanhan1962 khi in ra thì máy quét lại không quét được

Xin cho lời bình?
Chào các bạn
Trước đây mình cũng nghĩ là chỉ cần thay font code128 vào để in là được, nhưng khi in ra thì máy quét không đọc được. Mình tìm vào các chuyên mục về barcode ở Wikipedia thì có 1 số bài về barcode, và code ở bài 14 mình cũng sưu tập từ đó, sửa đổi 1 chút cho phù hợp với access và thử thì thành công. Lý do là:
-         Font code128 chỉ chuyển đổi ký tự thành mã vạch. Nếu chỉ như vậy thì máy quét chưa đọc được.
-         Máy quét muốn đọc được cần 3 yếu tố là: ký tự bắt đầu chuỗi mã vạch, ký tự kết thúc chuỗi mã vạch(như đầu câu viết hoa, cuối câu có dấu chấm câu trong ngữ pháp của mình vây) và checksum của chuỗi(xác định tính đúng của độ dài chuỗi mã vạch). Đủ 3 yếu tố đó thì máy quét mới quét được. Do vậy mới cần đoạn code trên để bổ sung 3 yếu tố đó
-         Nếu bạn xài Bartender hay IDAutomation bạn thử chuyển font trong textbox mã vạch thành font Arial sẽ thấy có mấy ký tự đầu cuối không có trong chuỗi mã bạn cần in. Các ký tự đó chính là do code trong Bartender hay IDAutomation ấn định in ra cho máy đọc.
-         Đối với  các phần mềm chuyên dụng như Bartender hay IDAutomation thì code mã hoá được hết các dạng font barcode, còn đoạn code của mình sưu tập được thì chỉ ứng dụng được cho font code128 thôi. Ngoài ra mình cũng có 1 code khác dành cho font Code128bWin và Code128bWinlager(gọi chung là code128b). Font nào riêng code đó, không xài chung được.
Mình đã sử dụng trong ứng dụng nhỏ do mình viết để quản lý kho, nhập kho, in tem barcode, xuất kho, kiểm kê bằng máy quét barcode hoàn toàn OK mới dám chia sẻ với các bạn.
Chúc các bạn thành công.
Chữ ký của nguyenichtri Chia sẻ chân thành là cách thêm kiến thức cho mình và bạn bè.
014
Reply
Những người đã cảm ơn Minh Tiên , maidinhdan
#20
Chào bạn nguyenichtri !
Mình dùng đoạn code như hướng dẫn của bạn nhưng khi tạo tem mã vạch xuất hiện 2 ký tự hình chữ nhật ở đầu và cuối chuỗi mã vạch là lỗi gì bạn ? Máy Scan ko đọc được.
Thanks!
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Photo [Hỏi] Mở Form trên access 2007 báo lỗi jason 5 195 22-11-16, 09:23 AM
Bài mới nhất: jason
  Chèn file văn bản word vào access danhxetnghiem 10 450 11-10-16, 03:42 PM
Bài mới nhất: danhxetnghiem
  Co dãn form access theo độ phân giải màn hình hoanbhxhls 13 1,108 21-07-16, 11:28 AM
Bài mới nhất: paulsteigel
  [Hỏi] Việt hóa bộ lọc của access nam8384 3 234 07-07-16, 12:32 PM
Bài mới nhất: cpucloi
  Mở file Excel từ access DoquangLam 5 2,336 08-06-16, 11:28 PM
Bài mới nhất: maidinhdan

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ