# GS1-128
## O IronBarcode Suporta a Simbologia GS1 UCC/EAN-128?
Códigos de barras com GS1 são reconhecidos e decodificados com precisão. No entanto, o problema está na falta atual de colchetes no valor do código de barras exibido.
Ao usar o GS1-128, o IronBarcode atualmente produz: `01950123456789033103000123` (o que é reconhecido como um código de barras Code 128 com assinatura GS1). O valor desejado a ser exibido na saída de imagem seria: `01950123456789033103000123`. No entanto, o scanner de código de barras irá gerar `(01)95012345678903(3103)000123` com uma detecção do tipo de código de barras como `Code128`.
Para gerar um código de barras GS1-128, use o seguinte código:
```csharp
using IronBarCode;
class BarcodeExample
{
static void Main()
{
// Create a GS1-128 barcode using the specified value
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("01950123456789033103000123", BarcodeWriterEncoding.Code128GS1);
// Add the barcode value text below the barcode on the generated image
barcode.AddBarcodeValueTextBelowBarcode();
// Save the barcode image as a PNG file
barcode.SaveAsPng("gs1code128.png");
}
}
```
### Saída do código de barras

O código acima gera um código de barras GS1-128 com um divisor padrão. Se você quiser adicionar divisores adicionais, pode inserir o separador Unicode `\u00f1`. No entanto, note que ao usar o método `AddBarcodeValueTextBelowBarcode`, o caractere Unicode ñ (código 0x00F1) será exibido. Para superar essa limitação, uma abordagem alternativa é manipular a string e passar o valor modificado para o método `AddAnnotationTextBelowBarcode`. Dessa forma, você pode obter a exibição desejada do valor do código de barras sem o caractere ñ.
```csharp
using IronBarCode;
class BarcodeExampleWithAnnotation
{
static void Main()
{
// Original barcode value
string barcodeValue = "0195012345678903310300012300\u00f10000000123300000\u00f10000012312300000";
// Remove unwanted unicode characters for display purposes
string trimmedString = barcodeValue.Replace("\u00f1", "");
// Create a GS1-128 barcode using the original value
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeWriterEncoding.Code128GS1);
// Add a custom annotation text below the barcode with the trimmed value
barcode.AddAnnotationTextBelowBarcode(trimmedString);
// Save the barcode image as a PNG file
barcode.SaveAsPng("gs1code128.png");
}
}
```
### Saída do código de barras

Ao escanear o código de barras, a saída será `(01)95012345678903(3103)000123(00)0000000123300000(00)00012312300000`, e o tipo de código de barras será detectado como `GS1Code128`.
## Analisar a codificação GS1-128
O IronBarcode também pode analisar a codificação física de um código de barras GS1-128, mostrando quais conjuntos de caracteres Code 128 (A, B ou C) são usados para cada segmento dos dados. Use o método `Code128GS1Parser.ParseWithEncoding` para analisar uma string GS1 com análise de codificação incluída.
```csharp
using IronBarCode;
// GS1-128 with encoding analysis
var gs1Result = Code128GS1Parser.ParseWithEncoding("(01)09501101530003");
Console.WriteLine(gs1Result.CharacterSetSummary); // "C"
Console.WriteLine(gs1Result.HasEncodingInfo); // true
```
Como os dados GS1-128 são principalmente numéricos, o codificador usa o código C para máxima compactação. A propriedade `HasEncodingInfo` confirma que a análise de codificação está disponível no resultado.
O IronBarcode Suporta a Simbologia GS1 UCC/EAN-128?
Códigos de barras com GS1 são reconhecidos e decodificados com precisão. No entanto, o problema está na falta atual de colchetes no valor do código de barras exibido.
Ao usar o GS1-128, o IronBarcode atualmente produz: 01950123456789033103000123 (o que é reconhecido como um código de barras Code 128 com assinatura GS1). O valor desejado a ser exibido na saída de imagem seria: 01950123456789033103000123. No entanto, o scanner de código de barras irá gerar (01)95012345678903(3103)000123 com uma detecção do tipo de código de barras como Code128.
Para gerar um código de barras GS1-128, use o seguinte código:
using IronBarCode;class BarcodeExample{ static voidMain() { // Create a GS1-128 barcode using the specified value GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("01950123456789033103000123", BarcodeWriterEncoding.Code128GS1); // Add the barcode value text below the barcode on the generated image barcode.AddBarcodeValueTextBelowBarcode(); // Save the barcode image as a PNG file barcode.SaveAsPng("gs1code128.png"); }}
using IronBarCode;
class BarcodeExample
{
static void Main()
{
// Create a GS1-128 barcode using the specified value
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("01950123456789033103000123", BarcodeWriterEncoding.Code128GS1);
// Add the barcode value text below the barcode on the generated image
barcode.AddBarcodeValueTextBelowBarcode();
// Save the barcode image as a PNG file
barcode.SaveAsPng("gs1code128.png");
}
}
ImportsIronBarCodeFriend Class BarcodeExampleShared Sub Main() ' Create a GS1-128 barcode using the specified value Dim barcode AsGeneratedBarcode = BarcodeWriter.CreateBarcode("01950123456789033103000123", BarcodeWriterEncoding.Code128GS1) ' Add the barcode value text below the barcode on the generated image barcode.AddBarcodeValueTextBelowBarcode() ' Save the barcode image as a PNG file barcode.SaveAsPng("gs1code128.png") End SubEnd Class
Imports IronBarCode
Friend Class BarcodeExample
Shared Sub Main()
' Create a GS1-128 barcode using the specified value
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("01950123456789033103000123", BarcodeWriterEncoding.Code128GS1)
' Add the barcode value text below the barcode on the generated image
barcode.AddBarcodeValueTextBelowBarcode()
' Save the barcode image as a PNG file
barcode.SaveAsPng("gs1code128.png")
End Sub
End Class
Saída do código de barras
O código acima gera um código de barras GS1-128 com um divisor padrão. Se você quiser adicionar divisores adicionais, pode inserir o separador Unicode \u00f1. No entanto, note que ao usar o método AddBarcodeValueTextBelowBarcode, o caractere Unicode ñ (código 0x00F1) será exibido. Para superar essa limitação, uma abordagem alternativa é manipular a string e passar o valor modificado para o método AddAnnotationTextBelowBarcode. Dessa forma, você pode obter a exibição desejada do valor do código de barras sem o caractere ñ.
using IronBarCode;class BarcodeExampleWithAnnotation{ static voidMain() { // Original barcode value string barcodeValue = "0195012345678903310300012300\u00f10000000123300000\u00f10000012312300000"; // Remove unwanted unicode characters for display purposes string trimmedString = barcodeValue.Replace("\u00f1", ""); // Create a GS1-128 barcode using the original value GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeWriterEncoding.Code128GS1); // Add a custom annotation text below the barcode with the trimmed value barcode.AddAnnotationTextBelowBarcode(trimmedString); // Save the barcode image as a PNG file barcode.SaveAsPng("gs1code128.png"); }}
using IronBarCode;
class BarcodeExampleWithAnnotation
{
static void Main()
{
// Original barcode value
string barcodeValue = "0195012345678903310300012300\u00f10000000123300000\u00f10000012312300000";
// Remove unwanted unicode characters for display purposes
string trimmedString = barcodeValue.Replace("\u00f1", "");
// Create a GS1-128 barcode using the original value
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeWriterEncoding.Code128GS1);
// Add a custom annotation text below the barcode with the trimmed value
barcode.AddAnnotationTextBelowBarcode(trimmedString);
// Save the barcode image as a PNG file
barcode.SaveAsPng("gs1code128.png");
}
}
ImportsIronBarCodeClass BarcodeExampleWithAnnotationShared Sub Main() ' Original barcode value Dim barcodeValue AsString = "0195012345678903310300012300" & ChrW(&HF1) & "000000123300000" & ChrW(&HF1) & "0000012312300000" ' Remove unwanted unicode characters for display purposes Dim trimmedString AsString = barcodeValue.Replace(ChrW(&HF1), "") ' Create a GS1-128 barcode using the original value Dim barcode AsGeneratedBarcode = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeWriterEncoding.Code128GS1) ' Add a custom annotation text below the barcode with the trimmed value barcode.AddAnnotationTextBelowBarcode(trimmedString) ' Save the barcode image as a PNG file barcode.SaveAsPng("gs1code128.png") End SubEnd Class
Imports IronBarCode
Class BarcodeExampleWithAnnotation
Shared Sub Main()
' Original barcode value
Dim barcodeValue As String = "0195012345678903310300012300" & ChrW(&HF1) & "000000123300000" & ChrW(&HF1) & "0000012312300000"
' Remove unwanted unicode characters for display purposes
Dim trimmedString As String = barcodeValue.Replace(ChrW(&HF1), "")
' Create a GS1-128 barcode using the original value
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeWriterEncoding.Code128GS1)
' Add a custom annotation text below the barcode with the trimmed value
barcode.AddAnnotationTextBelowBarcode(trimmedString)
' Save the barcode image as a PNG file
barcode.SaveAsPng("gs1code128.png")
End Sub
End Class
Saída do código de barras
Ao escanear o código de barras, a saída será (01)95012345678903(3103)000123(00)0000000123300000(00)00012312300000, e o tipo de código de barras será detectado como GS1Code128.
Analisar a codificação GS1-128
O IronBarcode também pode analisar a codificação física de um código de barras GS1-128, mostrando quais conjuntos de caracteres Code 128 (A, B ou C) são usados para cada segmento dos dados. Use o método Code128GS1Parser.ParseWithEncoding para analisar uma string GS1 com análise de codificação incluída.
using IronBarCode;// GS1-128 with encoding analysisvar gs1Result = Code128GS1Parser.ParseWithEncoding("(01)09501101530003");Console.WriteLine(gs1Result.CharacterSetSummary); // "C"Console.WriteLine(gs1Result.HasEncodingInfo); // true
using IronBarCode;
// GS1-128 with encoding analysis
var gs1Result = Code128GS1Parser.ParseWithEncoding("(01)09501101530003");
Console.WriteLine(gs1Result.CharacterSetSummary); // "C"
Console.WriteLine(gs1Result.HasEncodingInfo); // true
Imports IronBarCode
' GS1-128 with encoding analysis
Dim gs1Result = Code128GS1Parser.ParseWithEncoding("(01)09501101530003")
Console.WriteLine(gs1Result.CharacterSetSummary) ' "C"
Console.WriteLine(gs1Result.HasEncodingInfo) ' True
Como os dados GS1-128 são principalmente numéricos, o codificador usa o código C para máxima compactação. A propriedade HasEncodingInfo confirma que a análise de codificação está disponível no resultado.
Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.