आज के तेजी से चलने वाले व्यापार वातावरण में, बारकोड प्रौद्योगिकी ऑपरेशन को सरल बनाने और डेटा प्रबंधन को बढ़ाने में महत्वपूर्ण भूमिका निभाती है।, GS1-128 यह व्यापक रूप से उद्योगों में इस्तेमाल किया जाता है इसकी बहुमुखीता और विस्तृत उत्पाद जानकारी को कोड करने की क्षमता के लिए। Aspose.BarCode for .NET-प्रयोग पहचानकर्ताओं (एआई) को समझने से उपस्थिति को अनुकूलित करने और छवियों को निर्यात करने तक।.
पूर्ण उदाहरण
इस अंत से अंत के उदाहरण:
- सामान्य एआईएस का उपयोग करके एक वैध जीएस 1 श्रृंखला बनाता है: (01) GTIN-14, (२) अल्पसंख्यक, (Batch / Lot के लिए), (21) सत्र.
- लंबाई / प्रारूपों को मान्य करें।.
- प्रिंट-अनुकूल आकार / मार्जिन के साथ GS1-128 छवि का प्रदर्शन करता है।.
- एक PNG फ़ाइल को सहेजें आप हार्डकोड मानों को या उन्हें कमांड लाइन args के माध्यम से पारित कर सकते हैं।.
// File: Program.cs
// Compile: dotnet add package Aspose.BarCode && dotnet build
// Run (examples):
// dotnet run --project . -- 1234567890123 260930 ABC123 SN-00987
// dotnet run --project . -- 400638133393 260930 LOT-77 SER-42 (GTIN will be padded to 14 digits)
using System;
using Aspose.BarCode.Generation;
namespace GS1_128_BarcodeExample
{
class Program
{
static int Main(string[] args)
{
try
{
// ---------------------------
// 1) Read inputs (or defaults)
// ---------------------------
// Args: [0]=GTIN (≤14 digits), [1]=EXP YYMMDD, [2]=BATCH (var len), [3]=SERIAL (var len)
string gtinRaw = args.Length > 0 ? args[0] : "1234567890123";
string expYyMmDd = args.Length > 1 ? args[1] : "260930"; // 2026-09-30
string batchLot = args.Length > 2 ? args[2] : "ABC123";
string serial = args.Length > 3 ? args[3] : "SN-00987";
// ---------------------------
// 2) Normalize & validate
// ---------------------------
// Ensure GTIN is 14 digits (pad left with zeros when shorter)
if (gtinRaw.Length > 14 || !IsAllDigits(gtinRaw))
throw new ArgumentException("GTIN must be numeric and ≤ 14 digits.");
string gtin14 = gtinRaw.PadLeft(14, '0');
if (gtin14.Length != 14) throw new ArgumentException("GTIN must be exactly 14 digits after padding.");
// Optional (advanced): you can calculate or verify GTIN check digit here if desired.
if (!IsValidYyMmDd(expYyMmDd))
throw new ArgumentException("(17) Expiration must be YYMMDD and represent a valid calendar date.");
// Variable-length AIs (10) & (21) can be any non-empty strings; keep them short & scanner-friendly.
if (string.IsNullOrWhiteSpace(batchLot)) throw new ArgumentException("(10) Batch/Lot cannot be empty.");
if (string.IsNullOrWhiteSpace(serial)) throw new ArgumentException("(21) Serial cannot be empty.");
// ---------------------------
// 3) Compose GS1 code text
// ---------------------------
// Parentheses are human-readable; the library handles FNC1 as needed.
string gs1Text = $"(01){gtin14}(17){expYyMmDd}(10){batchLot}(21){serial}";
// ---------------------------
// 4) Configure generator
// ---------------------------
using (var generator = new BarCodeGenerator(EncodeTypes.GS1_128, gs1Text))
{
// Minimum module (bar) thickness — increase for thermal printers / rough media
generator.Parameters.Barcode.XDimension.Pixels = 3;
// Symbol height (for 1D-like linear symbol height inside GS1-128 area)
generator.Parameters.Barcode.BarHeight.Millimeters = 22f;
// Target output size (entire image). Adjust per label stock / DPI.
generator.Parameters.Barcode.ImageWidth.Inches = 2.8f;
generator.Parameters.Barcode.ImageHeight.Inches = 1.2f;
// Quiet zones (margins) — critical for scan reliability
generator.Parameters.Barcode.LeftMargin.Millimeters = 4f;
generator.Parameters.Barcode.RightMargin.Millimeters = 4f;
generator.Parameters.Barcode.TopMargin.Millimeters = 2f;
generator.Parameters.Barcode.BottomMargin.Millimeters = 2f;
// Human-readable text placement and formatting
generator.Parameters.Barcode.CodeTextParameters.Location = CodeLocation.Below;
generator.Parameters.Barcode.CodeTextParameters.FontSize.Point = 8f;
generator.Parameters.Barcode.CodeTextParameters.Space.Millimeters = 1.0f;
// ---------------------------
// 5) Save image (by extension)
// ---------------------------
string fileName = $"GS1_128_{gtin14}_{batchLot}_{serial}.png";
generator.Save(fileName);
Console.WriteLine($"✅ GS1-128 barcode saved: {fileName}");
}
return 0;
}
catch (Exception ex)
{
Console.Error.WriteLine("❌ Error: " + ex.Message);
Console.Error.WriteLine("Usage: <exe> <gtin≤14digits> <expYYMMDD> <batch> <serial>");
return 1;
}
}
// ---- Helpers ---------------------------------------------------------
// Minimal YYMMDD validation (1900–2099 windowing for simplicity)
static bool IsValidYyMmDd(string yymmdd)
{
if (string.IsNullOrWhiteSpace(yymmdd) || yymmdd.Length != 6) return false;
if (!IsAllDigits(yymmdd)) return false;
int yy = int.Parse(yymmdd.Substring(0, 2));
int mm = int.Parse(yymmdd.Substring(2, 2));
int dd = int.Parse(yymmdd.Substring(4, 2));
int year = (yy >= 0 && yy <= 79) ? 2000 + yy : 1900 + yy; // simple window
try
{
var _ = new DateTime(year, mm, dd);
return true;
}
catch
{
return false;
}
}
static bool IsAllDigits(string s)
{
foreach (char c in s)
if (c < '0' || c > '9') return false;
return true;
}
// Optional: GTIN-14 check digit calculator (Mod10). Use if you build GTIN from the first 13 digits.
// static char CalcGtin14CheckDigit(string first13Digits) { ... }
}
}
निर्माण & चलाएं
dotnet new console -n GS1_128_BarcodeExample -f net8.0
cd GS1_128_BarcodeExample
dotnet add package Aspose.BarCode
# Replace Program.cs with the code above, then:
dotnet run -- 1234567890123 260930 ABC123 SN-00987
आउटपुट PNG आपके कार्य निर्देशिका में लिखा जाएगा।.
कदम-चरण मार्गदर्शिका
चरण 1: GS1-128 के बुनियादी सिद्धांतों को समझना
GS1-128 एक है 128 कोड डेटा को कोड करने वाले प्रतीक आवेदन पहचानकर्ता (AIs).प्रत्येक एआई परिभाषित करता है कि क्या अगला है (डेटा प्रकार और लंबाई)।.
सामान्य एसिड:
- (01) GTIN-14 (सभी 14 अंक; पैड के साथ शून्य बाईं ओर यदि कम)
- 17) अधिनियम (YYMMDD)
- (10) लकड़ी के टुकड़े (लंबाई बदलती)
- (21) के सनसनी (लंबाई बदलती)
FNC1 संचालन: जब आप एक इंसान के साथ एक पाठ्यक्रम (जैसे,., (01)1234...(10)LOT), पुस्तकालय स्वचालित रूप से GS1 नियमों के लिए FNC1 विभाजक डालता है-विशेष रूप से जब एक लंबाई के बदलाव इसके बाद एक और एआई भी शामिल है।.
चरण 2: बारकोड सेटिंग्स सेट करें
उपयोग करें एक्सडी (मूल्य मॉड्यूल के साथ), BarHeight,और मार्जिन प्रिंट घनत्व और स्कैनर सहिष्णुता को संतुलित करने के लिए। थर्मल लेबलों के लिए, थोड़ा उच्च XDdimension और उदार शांत क्षेत्रों को पहली पार पढ़ने की दर में सुधार होता है।.
generator.Parameters.Barcode.XDimension.Pixels = 3;
generator.Parameters.Barcode.BarHeight.Millimeters = 22f;
generator.Parameters.Barcode.LeftMargin.Millimeters = 4f;
generator.Parameters.Barcode.RightMargin.Millimeters = 4f;
generator.Parameters.Barcode.TopMargin.Millimeters = 2f;
generator.Parameters.Barcode.BottomMargin.Millimeters = 2f;
चरण 3: एप्लिकेशन पहचानकर्ताओं (एआईएस) को परिभाषित करें
गीता को दो 14 digits,डेटा के रूप में YYMMDD, और परिवर्तनीय लंबाई एआई संक्षिप्त रखें (स्पेस / नियंत्रण टैंक से बचें)।.
string gtin14 = gtinRaw.PadLeft(14, '0');
string gs1Text = $"(01){gtin14}(17){expYyMmDd}(10){batchLot}(21){serial}";
चरण 4: बारकोड पाठ सेट करें
आप निर्माण में GS1 पाठ सेट कर सकते हैं या बाद में generator.CodeText.उदाहरण इसे निर्माता में रखता है और दिखाता है कि यदि आवश्यक हो तो इसे पुनर्निर्देशित करने का तरीका।.
चरण 5: उपस्थिति को अनुकूलित करें
यह तय करें कि क्या दिखाई देना है मानव-पढ़ाव कोड बार्स के नीचे (CodeLocation.Below) या इसे हटा दें यदि आपके लेबल लेआउट अन्य जगह पर पाठ प्रिंट करता है।.
generator.Parameters.Barcode.CodeTextParameters.Location = CodeLocation.Below;
generator.Parameters.Barcode.CodeTextParameters.FontSize.Point = 8f;
generator.Parameters.Barcode.CodeTextParameters.Space.Millimeters = 1.0f;
चरण 6: Generate & Save
(अधिकतम संस्करण के लिए).png, .jpg, .bmp, आदि.) लेबल कार्य प्रवाह के लिए, PNG यह आमतौर पर सबसे अच्छा है (नहीं।.
generator.Save("GS1_128_ProductLabel.png");
व्यावहारिक टिप्स & गोथ्स
- शांत क्षेत्रों में महत्वपूर्ण: यदि एक स्कैनर संघर्ष करता है, तो बाएं / दाएं मार्जिन और XDimension को थोड़ा बढ़ाएं।.
- थर्मल प्रिंटर: उम्र / कपड़े अच्छी बारों को गड़बड़ कर सकते हैं।
XDimension(उदाहरण के लिए, 3-4 पीएक्स) और मीडिया साफ रखें।. - GTIN चेक डिजिटल: यदि आप GTINs का निर्माण करते हैं, तो फ़ील्ड त्रुटियों को रोकने के लिए Mod10 चेक डिजिटल को गणना / सत्यापित करें।.
- Windows के लिए: उदाहरण में, YY विंडोकरण सरल है; अपने व्यवसाय नियमों के साथ समायोजित करें (उदाहरण के लिए, केवल 20xx)।.
- संस्करण नियंत्रण: आकार / मार्जिन पैरामीटरों को कॉन्फ़िग में संग्रहीत करें ताकि बारकोड पर्यावरणों के बीच पुन: प्राप्त किए जा सकें।.
निष्कर्ष
के साथ Aspose.BarCode for .NET,बनाए रखने GS1-128 के अनुरूप बारकोड सरल है. अपने एआईआई को परिभाषित करें, प्रारूपों को सत्यापित करें, प्रिंट पैरामीटरों को टोन करें, और लेबल करने के लिए तैयार एक साफ PNG निर्यात करें. ऊपर के पूर्ण उदाहरण का उपयोग एक ठोस प्रारंभिक बिंदु के रूप में करें, फिर आकार / मार्जिन और सत्यापन नियमों को अपनी प्रिंटर, सामग्री और स्कैनरों के साथ मेल खाते हुए समायोजित करें.