Mã Vạch Code 128 Là Gì? Chi Tiết Về Cách Mã Hóa Code 128

Giới thiệu về Mã vạch Mã vạch 128

Code 128 là gì ?
Code 128 là gì
Mã vạch Code 128 là một ký hiệu tuyến tính mật độ cao, mã hóa văn bản, số, nhiều hàm và toàn bộ bộ ký tự 128  ASCII (từ ASCII 0 đến ASCII 128.) Nó thường được sử dụng cho một số triển khai; và cũng được gọi là  ISBT-128 , GS1-128, UCC-128, EAN-128 và USS Mã 128.

Mã 128 chứa 106 mẫu mã vạch in khác nhau. Mỗi mã vạch được in hoàn toàn có thể có một trong ba ý nghĩa khác nhau tùy thuộc vào bộ ký tự nào đang được sử dụng, với sự có sẵn của ba ký tự mở màn Mã 128 khác nhau để lập trình bộ ký tự khởi đầu. Các công dụng cũng được phân phối trong ký hiệu mã vạch để quy đổi giữa những bộ ký tự và mã hóa Số nhận dạng ứng dụng. Mã vạch Mã 128 hoàn toàn có thể phức tạp để sử dụng do những bộ ký tự khác nhau, đó là nguyên do chính Tem Nhãn 24 h phân phối công dụng tự động hóa Mã 128, Mã Code128 ( ), trong một số ít Công cụ, Thành phần và Ứng dụng Phông chữ .
Mã vạch Code 128 hoàn hảo gồm có ký tự khởi đầu, chữ số tài liệu, chữ số kiểm tra modulo 103 và ký tự dừng .

 Bắt đầu nhân vậtChữ số dữ liệuKiểm tra nhân vậtDừng nhân vật
ÌMÃ-128OÎ
 Code 128 là gì ?

Biểu tượng mã vạch Code 128 ở trên đã được tạo bằng Trình tạo  hình ảnh mã vạch Tem Nhãn 24h .

Đa dạng Tiêu chuẩn cho mã vạch mã vạch 128

Một số tiêu chuẩn sống sót chỉ ra cách tạo mã 128 mã cho những tiến hành nhất định ; một vài trong số này gồm có :

  • GS1-128 (trước đây gọi là UCC-128 và EAN-128) được định nghĩa bởi  GS1 và được sử dụng để tạo một số loại ký hiệu mã vạch bao gồm  Mã định danh ứng dụng . Mã định danh ứng dụng (AI) xác định mục đích của dữ liệu trong ký hiệu và cách sử dụng dữ liệu đó.
  • ISBT-128  được thiết kế đặc biệt để in nhãn mã vạch sản phẩm máu. Nó được phát triển bởi Hiệp hội truyền máu quốc tế (ISBT) và Ban công tác về tự động hóa và xử lý dữ liệu ( WPADP ).
  • USS Code 128 ( Mã thông số mã hóa thống nhất thống nhất 128) là đặc điểm kỹ thuật được công bố cho mã vạch Code 128.
  • Mã ISS 128 ( Mã thông số mã hóa quốc tế 128) là mã vạch mã vạch USS Code 128 với tính năng mới cho phép mã hóa các ký tự ASCII mở rộng cho các ngôn ngữ không phải tiếng Anh.
  • Số thương phẩm toàn cầu ( GTIN ) , hay trước đây gọi là EAN14, là cấu trúc nhận dạng sản phẩm trong hệ thống GS1 (EAN / UCC). GTIN là một chuỗi số có độ dài cố định 14 chữ số, bao gồm chữ số chỉ báo (hoặc biến thể logistic), tiền tố của công ty EAN / UCC, tham chiếu mục và chữ số kiểm tra. Khi sử dụng ký hiệu mã vạch GS1-128, dữ liệu sẽ cần được thêm vào ký tự Fnc1 và  Mã nhận dạng ứng dụng là 01. GTIN phải luôn được lưu trữ trong cơ sở dữ liệu dưới dạng số có 14 chữ số. Khi GTIN được biểu thị bằng UPC-A, UPC-E, GTIN-8 và GTIN-13, dưới dạng 8, 12 hoặc 13 chữ số, số này phải được lưu dưới dạng số 14 chữ số bằng cách gắn các số 0 vào đầu dữ liệu .
  • SSCC-18 là một đặc điểm kỹ thuật nhãn vận chuyển nối tiếp.

Sản phẩm để in mã 128 mã vạch

Một số Hướng dẫn tích hợp mã vạch có sẵn yêu cầu những tùy chọn in mã vạch khác nhau. Các tùy chọn tích hợp này cần được kiểm tra để xác lập xem có nên sử dụng những thành phần mã vạch, ứng dụng hoặc phông chữ để in mã vạch hay không. Một số Hướng dẫn tích hợp mã vạch được cung ứng gồm có :

  • Truy cập
  • Báo cáo pha lê
  • Excel
  • Trình tạo tệp
  • Mở văn phòng & văn phòng sao
  • Báo cáo của Oracle
  • Dịch vụ báo cáo
  • C ++
  • CNET
  • Visual Basic 6 và VB.NET
  • Thực thi mã vạch web

Sản phẩm điển hình nổi bật :
Gói Ưu điểm Phông chữ Mã vạch Đa năng Tem Nhãn 24 h là một mẫu sản phẩm độc lạ tiêu biểu vượt trội trong việc tạo mã vạch 128 trên nhiều hệ quản lý và điều hành và địa phương, gồm có cả những phiên bản Double Byte của Windows. Gói này khắc phục những trở ngại nhiều lúc xảy ra khi in Mã 128 dưới dạng phông chữ mã vạch bên ngoài Hoa Kỳ .

Chúng tôi đã có bài viết: Các loại mã vạch thông dụng thường dùng trên toàn thế giới

Đọc và quét mã 128 mã vạch

Phương pháp thông dụng nhất để đọc mã 128 mã vạch là với máy quét mã vạch tuyến tính. Hầu hết những máy quét mã vạch được Tem Nhãn 24 h khuyến nghị thực thi mô phỏng bàn phím và nhận nguồn điện từ cổng USB, do đó không cần nguồn điện bên ngoài. Khi mã vạch được quét bằng mô phỏng bàn phím, tài liệu được quét sẽ Open ở con trỏ như thể nó đã được gõ từ bàn phím .
Hầu hết những máy quét mã vạch có năng lực đọc Mã 128 mã theo mặc định, ví dụ điển hình như Máy quét mã vạch USB Tem Nhãn 24 h. Máy quét này đáng an toàn và đáng tin cậy đọc Tem Nhãn 24 h Code 128 Barcode Font và Universal Barcode Font khi được in nhỏ tới 6 điểm, có size X là 4 triệu .

USS Bộ ký tự mã-128

Tem Nhãn 24 h cung ứng một số ít công cụ phông chữ, macro và mẫu mã nguồn hoàn toàn có thể được sử dụng không lấy phí bản quyền với phông chữ mã vạch Tem Nhãn 24 h, tự động hóa định dạng tài liệu được mã hóa thành phông chữ mã vạch. Do đó, những tham chiếu đến bộ ký tự này hoàn toàn có thể không thiết yếu .
Ba bộ ký tự được liệt kê dưới đây dành cho mã vạch Mã 128. Trong những cột A, B và C, được liệt kê ký tự hoặc tính năng mà máy quét mã vạch sẽ đọc cho hình tượng tương quan. Các cột Unicode ASCII và những dòng Unicode Unicode chỉ định vị trí đặt ký hiệu mã vạch cho ký tự. Cột Char Char tựa liệt kê những ký tự cư trú tại vị trí ASCII, được sử dụng để in hình tượng tương ứng. Vị trí ASCII cho ký tự khoảng trống, ký tự dừng và giá trị ký tự 94-105 chỉ được vận dụng cho những loại sản phẩm Tem Nhãn 24 h gồm có Phông chữ mã vạch 128. Đặc tả ISO cho Mã 128 không chỉ định vị trí của những giá trị ASCII và Unicode cho những ký hiệu này .

Bộ ký tự USS Code-128

Code ACode BCode CASCII *Unicode *CharValueCode ACode BCode CASCII *Unicode *CharValue
 SpaceSpace00 019400C2Â00VV5400860056V54
 !!0100330021!01WW5500870057W55
 “020034002202XX5600880058X56
 ##0300350023#03YY5700890059Y57
 $$0400360024$04ZZ580090005AZ58
 %%0500370025%05[[590091005B[59
 &&0600380026&06\\600092005C\60
 ‘070039002707]]610093005D]61
 ((0800400028(08^^620094005E^62
 ))0900410029)09__630095005F_63
 **100042002A*10nul`6400960060`64
 ++110043002B+11soha6500970061a65
 ,,120044002C,12stxb6600980062b66
 –130045002D13etxc6700990063c67
 ..140046002E.14eotd6801000064d68
 //150047002F/15enoe6901010065e69
 0160048003016ackf7001020066f70
 111700490031117belg7101030067g71
 221800500032218bsh7201040068h72
 331900510033319hti7301050069i73
 442000520034420lfj740106006Aj74
 552100530035521vtk750107006Bk75
 662200540036622ffl760108006Cl76
 772300550037723crm770109006Dm77
 882400560038824s0n780110006En78
 992500570039925s1o790111006Fo79
 ::260058003A:26dlep8001120070p80
 ;;270059003B;27dc1q8101130071q81
 <<280060003C<28dc2r8201140072r82
 ==290061003D=29dc3s8301150073s83
 >>300062003E>30dc4t8401160074t84
 ??310063003F?31naku8501170075u85
 @@3200640040@32synv8601180076v86
 AA3300650041A33etbw8701190077w87
 BB3400660042B34canx8801200078x88
 CC3500670043C35emy8901210079y89
 DD3600680044D36subz900122007Az90
 EE3700690045E37esc{910123007B{91
 FF3800700046F38fs|920124007C|92
 GG3900710047G39gs}930125007D}93
 HH4000720048H40rs~940126007E~94
 II4100730049I41usdel95019500C3Ã95
 JJ420074004AJ42fnc 3fnc 396019600C4Ä96
 KK430075004BK43fnc 2fnc297019700C5Å97
 LL440076004CL44ShiftShift98019800C6Æ98
 MM450077004DM45code Ccode C99019900C7Ç99
 NN460078004EN46code Bfnc 4code B020000C8È100
 OO470079004FO47fnc 4code Acode A020100C9É101
 PP4800800050P48fnc 1fnc 1fnc 1020200CAÊ102
 QQ4900810051Q49Start AStart AStart A020300CBË103
 RR5000820052R50Start BStart BStart B020400CCÌ104
 SS5100830053S51Start CStart CStart C020500CDÍ105
 TT5200840054T52StopStopStop020600CEÎna
 UU5300850055U53

* Cần in ký tự không gian Mã 128 từ ASCII 194 thay vì ASCII 32 vì một số ứng dụng không in ký hiệu thay vì ký tự khoảng trắng. Vị trí ASCII cho ký tự không gian, ký tự dừng và giá trị ký tự 94-105 chỉ được áp dụng cho các sản phẩm mã vạch Tem Nhãn 24h bao gồm Phông chữ mã vạch 128 . Ngoài ra, các ký tự được liệt kê cho các giá trị 00 và 94-105 là từ bảng mã Latin-1. Khi codepage Latin-1 không được sử dụng hoặc khi sử dụng máy Mac, bạn nên sử dụng Universal Barcode Font Advantage ™ , tạo mã vạch 128 mã làm phông chữ trong bất kỳ hệ điều hành và mã hóa nào.

Mã số 128 Kiểm tra nhân vật Ví dụ thống kê giám sát

Tem Nhãn 24 h phân phối một số ít công cụ phông chữ, trình cắm và mẫu mã nguồn không tính tiền sử dụng với phông chữ mã vạch Tem Nhãn 24 h, sẽ tự động hóa định dạng khởi đầu, dừng và kiểm tra những ký tự cho phông chữ mã vạch. Do đó, những đo lường và thống kê bằng tay thủ công được diễn đạt ở đây hiếm khi thiết yếu .
Các ví dụ sau đây tạo mã vạch với Phông chữ Mã vạch 128 Mã Tem Nhãn 24 h trong bảng mã Latin-1, là setup mặc định ở Hoa Kỳ. Khi codepage Latin-1 không được sử dụng hoặc khi sử dụng máy Mac, bạn nên sử dụng Universal Barcode Font Advantage ™, tạo mã vạch Code 128 làm phông chữ trong bất kể hệ quản lý và điều hành và mã hóa nào .
Quá trình sau đây được sử dụng để xác lập giá trị của ký tự kiểm tra :

  1. Tham chiếu bảng bộ ký tự để lấy giá trị của ký tự bắt đầu và tất cả các ký tự dữ liệu.
  2. Gán trọng số cho mỗi ký tự dữ liệu (không phải ký tự bắt đầu, chỉ các ký tự dữ liệu.) Trọng số bắt đầu từ 1 và tăng thêm một cho mỗi ký tự dữ liệu.
  3. Nhân các giá trị ký tự với trọng số của chúng cho các ký tự dữ liệu.
  4. Thêm chúng lại với nhau bao gồm ký tự bắt đầu, chia cho 103 và lấy phần còn lại.
  5. Sử dụng bảng bộ ký tự để xác định vị trí ký tự có giá trị của phần còn lại, sử dụng bảng này làm ký tự kiểm tra.

Ví dụ giám sát cho bộ ký tự A hoặc B :

Bảng dưới đây là một ví dụ về cách để có được những ký tự kiểm tra đối với các dữ liệu “ biz ” sử dụng Mã 128 ký tự B.

Bắt đầu BbTôizSTP
 trọng số123
 giá trị104667390
 tổng số10466146270
  1. Tính Tổng : 104+ (66 * 1) + (73 * 2) + (90 * 3) = 586
  2. Tính toán tổng kiểm tra : 586 chia cho 103 = 5 phần còn lại của 71. Do đó, chữ số kiểm tra bằng giá trị 71. Ký tự để in cho giá trị 71 là Chú thích gọ hoặc ASCII 103.
  3. Để in các dữ liệu “ biz ” như mã vạch, các văn bản của  ÌbizgΠđược kết hợp với  Mã 128 Phông chữ Mã vạch .

Ví dụ đo lường và thống kê cho bộ ký tự C :

Bảng sau đây là một ví dụ về cách lấy ký tự kiểm tra cho số Số 667390, sử dụng bộ ký tự C.

Bắt đầu C667390Sê-ri
 trọng số123
 giá trị10566790
 tổng số10566146270
  1. Tách các số thành cặp và chọn ký tự phù hợp từ bảng bộ ký tự đại diện cho cặp số.
  2. Tính tổng : 105 + (66 * 1) + (73 * 2) + (90 * 3) = 587
  3. Tính toán tổng kiểm tra : 587 chia cho 103 = 5 phần còn lại của 72. Do đó, chữ số kiểm tra bằng giá trị 72. Ký tự cần in cho giá trị 72 là ASCII 104.
  4. Để in dữ liệu mật mã 667390 , mã vạch, văn bản của  ÍbizhΠđược kết hợp với  Phông chữ mã vạch 128 .

Ví dụ đo lường và thống kê cho nhiều bộ ký tự :

Bảng sau đây là một ví dụ về cách mã hóa dữ liệu hoàng tử sử dụng mã 128 bộ ký tự B với một công tắc chuyển sang bộ ký tự A cho chức năng trả về vận chuyển.

Bắt đầu BbTôizÉmDỪNG LẠI
 trọng số12345
 giá trị10466739010177
 tổng số1046614627040435
  1. Tính Tổng : 104 + (661) + (73 * 2) + (90 * 3) + (101 * 4) + (77 * 5) = 1375
  2. Tính toán tổng kiểm tra : 1375 chia cho 103 = 13 phần còn lại của 36. Chữ số kiểm tra bằng giá trị 36. Ký tự để in cho giá trị 36 là Xưa Dọ hoặc ASCII 68.

Chuyển đổi giữa bộ và mã hóa Chức năng

Các tính năng mã hóa như trả về và những tab hoàn toàn có thể giúp những tác vụ nhập tài liệu thuận tiện hơn. Các công dụng được mã hóa thuận tiện với mã công dụng ASCII thích hợp. Thông thường, những ký tự này không hiển thị trừ khi một ứng dụng được sử dụng như Bộ giải mã chuỗi mã vạch ASCII của Tem Nhãn 24 h, hiển thị những công dụng ẩn này dưới dạng thẻ .

Dễ dàng mã hóa những công dụng với Bộ A :

Sử dụng Bộ ký tự A và chuyển đổi tất cả dữ liệu văn bản sang UPPERCASE. Hãy cẩn thận với phương pháp này bởi vì bất kỳ chữ thường nào trong tập A sẽ tạo ra một hàm! Sau đó, sử dụng chữ cái i iio cho một tab và m m m để trả lại. Các chức năng khác có thể được xác định bằng cách tra cứu cột cho Mã A trên  biểu đồ bộ ký tự và chọn ký tự liên quan. Ví dụ: Chuỗi ký tự sau trong bộ ký tự A mã hóa dữ liệu JO JO SMITH 128-288-6794 Hay.
JOHNiSMITHi128-288-6794m

Sử dụng tính năng di dời trong Bộ B :

Sử dụng Bộ ký tự B và thực hiện dịch chuyển để đặt A để mã hóa các tab, trả về và các chức năng khác. Sau đó, chỉ sử dụng các chữ cái Æi, cho một tab và chữ ”m Đá để trả lại trong đó, “Hồi là ASCII 198 hoặc Unicode 00C6.
Ví dụ:
Chuỗi ký tự sau trong bộ ký tự B mã hóa dữ liệu của John John Smith 349-128-6794 Nott.
JohnÆiSmithÆi349-128-6794Æm

Chuyển đổi bộ ký tự thủ công bằng tay :

Nên sử dụng các phương thức dịch chuyển bộ ký tự (được mô tả ở trên) nếu có thể. Các phương thức chuyển đổi sau hoạt động với tất cả các sản phẩm Mã 128 của Tem Nhãn 24h:
Khi bộ ký tự là A hoặc B , việc chuyển đổi giữa các bộ ký tự được thực hiện bằng cách đặt mã ASCII thích hợp của chức năng chuyển đổi từ biểu đồ trong dữ liệu để mã hóa.

Ví dụ, nếu bạn chọn Set B và bạn chỉ định các dữ liệu “ bizÉmiÈfonts.com ” ( “ É ” là chuyển sang tập A, “ m ” là sự trở lại và “ i ” là chức năng tab và “ È ” được chuyển đổi trở lại để đặt B theo biểu đồ) làm đầu vào cho chức năng Mã 128 B, mã vạch được tạo sẽ thực hiện chuyển đổi để đặt A và chức năng trả về cộng với một tab khi được quét bởi máy quét mã vạch.
Các chức năng cũng có thể được sử dụng mà không có bất kỳ chuyển đổi nào nếu bộ ký tự đã A. Ví dụ: nếu bạn chỉ định dữ liệu BẠCH BẠCH (thì m m là chức năng theo biểu đồ) làm đầu vào cho chức năng Mã 128 A, máy quét mã vạch sẽ đọc nội dung BIZ và sau đó là chức năng trả về.

Có quan điểm ​ ​ cho rằng người dùng Mac sử dụng Universal Barcode Font Advantage ™, tạo mã vạch 128 mã làm phông chữ trong bất kể hệ quản lý và điều hành và hệ quản lý và điều hành nào .

Mã hóa tự động hóa với mã 128 Auto :

Các chức năng có thể được mã hóa trực tiếp trong các sản phẩm Tem Nhãn 24h bằng cách kích hoạt tính năng Apply ApplyTilde, trong Code128 Auto và sử dụng định dạng ~ ??? để xác định  mã ASCII của hàm . Ví dụ: Mã ~ 009 Bar ~ 013  sẽ mã hóa  Mã [TAB] Thanh [RETURN] .

Khi  ApplyTilde không có sẵn, cú pháp mã lập trình cho  mã chức năng ASCII có thể được sử dụng trong công thức cho DataToEncode. Ví dụ: các công thức sau đây kết hợp hai trường trong một mã vạch duy nhất với dấu phân cách chức năng tab:
Báo cáo tinh thể: Tem Nhãn 24h_Code128 ({Table1.DataField1} & Chr (9) & {Table1.C128})
Microsoft Access: = ([Table1.Field1 ] & Chr (9) & [Table1.Field2])
VB .NET: DataToEncode = DataString1 & Chr (9) & DataString2
Java: DataToEncode = DataString1 + (char) 9 + DataString2;

Chức năng mã hóa với bộ A :

Cần thận trọng trong bộ ký tự A vì bất kỳ chữ cái viết thường nào cũng sẽ tạo ra một hàm theo biểu đồ . Sử dụng chữ cái i iv cho một tab và m m m để trả lại. Các chức năng khác có thể được xác định bằng cách tra cứu cột cho Mã A trong  biểu đồ bộ ký tự . Ví dụ, chuỗi ký tự sau trong bộ ký tự Một mã hóa dữ liệu “JOHN SMITH 128-288-6794 [trở lại]”:
JOHN i SMITH i 128-288-6794 m

Mã 128 Thông số kỹ thuật về mã vạch

Tem Nhãn 24 h Code 128 Phông chữ mã vạch gồm có một số ít kích cỡ để cung ứng những nhu yếu về chiều cao và chiều rộng khác nhau, gồm có những kích cỡ GS1-128. Kích thước X ( X là chiều rộng của thanh hẹp ) được liệt kê bên dưới cho những size điểm khác nhau tính bằng milimét và mils. 1 triệu bằng 1/1000 inch. Phông chữ mã 128 của Tem Nhãn 24 h đã được phong cách thiết kế đặc biệt quan trọng để hoàn toàn có thể tạo mã vạch đáng an toàn và đáng tin cậy khi được in ở size điểm lớn và nhỏ .

 Kích thước điểmKích thước X gần đúng (1 triệu = 0,001)
 480,102 cm40 triệu
 36.076 cm30 triệu
 320,69 cm27 triệu
 30.064 cm25 triệu
 280,58 cm23 triệu
 240,51 cm20 triệu
 20.043 cm17 triệu
 180,38 cm15 triệu
 16.033 cm13 triệu
 120,25 cm10 triệu
 số 8.018 cm7 triệu
 60,013 cm5 triệu

* Để in ở kích thước X khác, hãy tìm kích thước điểm có kích thước X gần nhất với kích thước cần thiết và sử dụng công thức bên dưới để tìm kích thước điểm cần thiết:
12 * (Cần kích thước X) / (Kích thước X tại 12 điểm) = (kích thước điểm) Ví dụ: để có kích thước X là 12 triệu, kích thước điểm phải là 14:
12 * 12/10 = 14

Khi sử dụng máy in có ít hơn 600 DPI, hãy in ở những kích cỡ điểm sau để tạo mã vạch đúng chuẩn :

 Máy in 203 DPI (máy in nhiệt)Máy in 300 DPI
 6, 12, 18, 24, 30, 364, 8, 12, 16, 20, 24, 28, 32, 36

Chiều cao và N Kích thước cho từng loại phông chữ được liệt kê trong biểu đồ bên dưới. Mỗi phông chữ hoàn toàn có thể được in ở những kích cỡ điểm khác nhau để cho phép 1 số ít tích hợp chiều cao và chiều rộng .

 Tên phông chữ đã muaTên phông chữ đánh giá *Chiều cao phông chữ *Kích thước N **
 Tem Nhãn 24hC128XXSTem Nhãn 24hSC128XXS .10 hoặc .254 CM  10
 Tem Nhãn 24hC128XSTem Nhãn 24hSC128XS .20 hoặc .508 CM  20
 Tem Nhãn 24hC128STem Nhãn 24hSC128S .35 hoặc .889 CM  35
 Tem Nhãn 24hC128MTem Nhãn 24hSC128M .50 hoặc 1.27 CM  50
 Tem Nhãn 24hC128LTem Nhãn 24hSC128L .60 hoặc 1.46 CM  58
 Tem Nhãn 24hC128XLTem Nhãn 24hSC128XL .75 hoặc 1.90 CM  75
 Tem Nhãn 24hC128XXLTem Nhãn 24hSC128XXL 1 ″ hoặc 2,54 CM  100

* Các phép đo là gần đúng và được đo khi được in ở 12 điểm.
Để in ở độ cao khác nhau, hãy tìm phông chữ có chiều cao gần nhất với mức cần thiết và sử dụng công thức sau để tìm kích thước điểm cần thiết:
12 * (chiều cao bạn muốn) / (chiều cao ở 12 điểm) = (điểm kích thước được chuyển đổi thành số nguyên)
Ví dụ: nếu sử dụng Tem Nhãn 24hC128M và chiều cao là 0,75, thì nên in ở 18 điểm:
12 * .75 / .5 = 18
** Cột N Dimension trong biểu đồ là tỷ lệ chiều rộng thanh hẹp so với chiều cao của phông chữ.

Source: https://dvn.com.vn
Category: Cẩm Nang

Alternate Text Gọi ngay