Jak wygenerować formaty danych BarCode w języku C#

Jak generować formaty danych w języku C# za pomocą IronBarcode

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode zapewnia wiele formatów wyjściowych odczytów kodów kreskowych, w tym BarcodeImage, BarcodeType, BinaryValue, współrzędne, wymiary, numery stron, orientację, tekst i właściwości wartości. Formaty te umożliwiają programowe przetwarzanie danych z BarCodes w różnych zastosowaniach.

Zamiast po prostu odczytywać BARCODE i drukować wartości w konsoli, IronBarcode oferuje znacznie więcej. Oferuje kilka formatów wyjściowych, które ułatwiają użytkownikom przetwarzanie odczytanych wyników. Formaty te obejmują takie właściwości, jak obraz BarCode, typ BarCode, BinaryValue, współrzędne, wysokość, szerokość, numer strony, BarCode, orientacja strony, text oraz value.

Użytkownicy mogą dalej modyfikować te właściwości w ramach programu. Zobaczmy, jak korzystać z tych właściwości i w jakich sytuacjach mogą się one przydać.

Szybki start: Odczyt wartości i typu BarCode w jednym wierszu

Ten przykład pokazuje, jak odczytać kod kreskowy z obrazu za pomocą IronBarcode – wystarczy jedna linijka kodu, aby załadować, a następnie natychmiast wydrukować wartość i typ kodu kreskowego. Idealne rozwiązanie do szybkiego rozpoczęcia pracy. Bardziej szczegółowe przykłady znajdziesz w przewodniku "BarCode Quickstart".

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode
  2. Skopiuj i uruchom ten fragment kodu.

    var result = IronBarCode.BarcodeReader.Read("input.png");
    Console.WriteLine($"Value: {result[0].Value}, Type: {result[0].BarcodeType}");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronBarcode w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jakie są dostępne formaty wyjściowe i ich zastosowania?

BarcodeResult przechowuje różne przydatne właściwości. Właściwości te wymieniono poniżej:

  • BarcodeImage
  • BarcodeType
  • BinaryValue
  • Współrzędne, Height & Width
  • PageNumber
  • Barcode oraz PageOrientation
  • Text & Value

Każda właściwość służy konkretnym celom w procesach przetwarzania BarCode. Niezależnie od tego, czy tworzysz system zarządzania zapasami, proces przetwarzania dokumentów czy aplikację do kontroli jakości, te formaty danych zapewniają elastyczność niezbędną do odczytu BARCODE-ów z różnych źródeł.

Jak mogę wyodrębnić i zapisać obrazy BarCode'ów?

Po odczytaniu obrazu przez IronBarcode BarCODE-y znalezione na obrazie są zapisywane w BarcodeResult jako właściwość BarcodeImage typu AnyBitmap. Właściwość BarcodeImage przechowuje znalezione obrazy BarCode. Użytkownicy mogą pobrać ten obiekt w celu dalszego przetwarzania obrazu lub zapisania go jako stałą kopię. Zapewnia to wydajność i łatwość użytkowania poprzez wyeliminowanie dodatkowego kodu potrzebnego do wyodrębniania obrazów BARCODE-ów z obrazu.

Spójrz na poniższy fragment kodu, który pokazuje możliwy przypadek użycia tego formatu wyjściowego:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeImage.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Read barcode from PDF file
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Create list for barcodes
List<AnyBitmap> barcodeList = new List<AnyBitmap>();

foreach (BarcodeResult barcode in result)
{
    barcodeList.Add(barcode.BarcodeImage);
}

// Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif");
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Collections.Generic

' Read barcode from PDF file
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Create list for barcodes
Private barcodeList As New List(Of AnyBitmap)()

For Each barcode As BarcodeResult In result
	barcodeList.Add(barcode.BarcodeImage)
Next barcode

' Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif")
$vbLabelText   $csharpLabel

Powyższy fragment kodu ilustruje jeden z przykładów zastosowania tego formatu wyjściowego. W szczególności tworzy wielostronicowy obraz TIFF na podstawie kodów kreskowych wykrytych w dokumencie PDF. Najpierw skanujemy lub wykrywamy kody kreskowe w przykładowym pliku PDF. Następnie tworzymy listę AnyBitmap, w której przechowujemy informacje z właściwości BarcodeImage. Na koniec wykorzystujemy tę listę do wygenerowania wielostronicowego pliku TIFF przy użyciu metody CreateMultiFrameTiff. Technika ta jest szczególnie przydatna podczas przetwarzania wielostronicowych plików GIF i TIFF.

BarcodeImage właściwość z BarcodeResult przechowuje tylko obrazy BARCODE-ów znalezionych podczas odczytu, a nie cały obraz wejściowy.

Jak programowo rozpoznać różne typy BarCodes?

Ta właściwość pomaga określić, jaki typ BARCODE występuje na obrazku lub w dokumencie wejściowym. Ograniczeniem jest jednak to, że typ BARCODE na obrazie musi być obsługiwany i czytelny dla IronBarcode. Aby dowiedzieć się więcej o typach kodów kreskowych obsługiwanych przez IronBarcode, zapoznaj się z tym artykułem. Dodatkowo zapoznaj się z pełną listą obsługiwanych formatów BARCODE, aby upewnić się, że spełniają one Twoje konkretne wymagania.

Poniższy fragment kodu pokazuje, jak pobrać wartości kodów kreskowych i typ kodu kreskowego z obrazu, drukując te wartości w konsoli.

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeType.cs
using IronBarCode;
using System;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("bc3.png");

// Output barcode type to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value is " + barcode.ToString() + " and the barcode type is " + barcode.BarcodeType);
}
Imports IronBarCode
Imports System

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("bc3.png")

' Output barcode type to console
For Each barcode As BarcodeResult In result
	Console.WriteLine("The barcode value is " & barcode.ToString() & " and the barcode type is " & barcode.BarcodeType)
Next barcode
$vbLabelText   $csharpLabel

W powyższym fragmencie kodu odczytujemy BARCODE, wywołując metodę BarcodeReader.Read() na obrazku wejściowym. Zwraca to obiekt BarcodeResults, który przechowuje wszystkie BarcodeResult uzyskane po odczytaniu wszystkich BARCODE'ów dostępnych na obrazie. Następnie iterujemy przez obiekt BarcodeResults, aby pobrać BarcodeResult i wyświetlić BARCODE value oraz type na konsoli. To podejście działa bezproblemowo z różnymi typami kodów kreskowych, w tym z formatami specjalistycznymi, takimi jak kody kreskowe Code 39.

Kiedy należy używać wyjścia wartości binarnej?

Using IronBarcode, użytkownicy mogą pobrać tablicę bajtów kodu kreskowego value, uzyskując dostęp do właściwości BinaryValue z obiektu BarcodeResult. Pozwala to użytkownikom na dalszą obróbkę BarCoda value w programie. Wynik w formacie binarnym value jest szczególnie przydatny podczas pracy z danymi zaszyfrowanymi, załącznikami zakodowanymi w BARCODE-ach lub podczas integracji z systemami wymagającymi przetwarzania danych na poziomie bajtów.

Poniższy fragment kodu ilustruje jeden z przykładów pobierania BARCODE-a value jako danych binarnych:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BinaryValue.cs
using IronBarCode;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

int i = 1;
foreach (BarcodeResult barcode in result)
{
    var binaryValue = barcode.BinaryValue;
    var barcodeType = IronBarCode.BarcodeEncoding.QRCode;

    // Create QR code
    GeneratedBarcode generatedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType);

    // Export QR code
    generatedBarcode.SaveAsPng($"qrFromBinary{i}.png");
    i++;
}
Imports IronBarCode

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")

Private i As Integer = 1
For Each barcode As BarcodeResult In result
	Dim binaryValue = barcode.BinaryValue
	Dim barcodeType = IronBarCode.BarcodeEncoding.QRCode

	' Create QR code
	Dim generatedBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType)

	' Export QR code
	generatedBarcode.SaveAsPng($"qrFromBinary{i}.png")
	i += 1
Next barcode
$vbLabelText   $csharpLabel

Analizując powyższy fragment kodu, stworzyliśmy prosty program, który przekształca wiele BarCodes w obrazie w oddzielne, nowe pliki zakodowane binarnie. Na początku skanujemy barcody na przykładowym obrazku PNG. Po wykryciu tych kodów kreskowych przeglądamy je, uzyskujemy dostęp do właściwości BinaryValue i wykorzystujemy ją do tworzenia nowych plików binarnych. Technika ta jest szczególnie przydatna, gdy trzeba odczytać wiele BARCODE'ów i przetworzyć ich dane binarne indywidualnie.

Jak uzyskać dostęp do lokalizacji i wymiarów BarCode?

Kolejną właściwością obiektu BarcodeResult, do której użytkownicy mają dostęp, są współrzędne BARCODE, w tym X1, Y1 i X2, Y2, a także jego Height i Width w pliku graficznym lub dokumencie. Te właściwości są przydatne, gdy użytkownicy muszą uzyskać informacje o położeniu i wymiarach BarCode'a. Te informacje przestrzenne mają kluczowe znaczenie dla aplikacji wymagających precyzyjnego pozycjonowania, takich jak automatyczne przetwarzanie dokumentów, systemy kontroli jakości lub podczas wdrażania obszarów wycinania w celu zoptymalizowanego skanowania BARCODE.

Zobaczmy, gdzie znajduje się BARCODE i jakie są jego wymiary.

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-height-width.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Linq;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

AnyBitmap bitmap = AnyBitmap.FromFile("multiple-barcodes.png");

foreach (BarcodeResult barcode in result)
{
    PointF[] barcodePoints = barcode.Points;

    float x1 = barcodePoints.Select(b => b.X).Min();
    float y1 = barcodePoints.Select(b => b.Y).Min();

    Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);

    bitmap = bitmap.Redact(rectangle, Color.Magenta);

    // Save the image
    bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png);
}
Imports System
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Linq

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")

Private bitmap As AnyBitmap = AnyBitmap.FromFile("multiple-barcodes.png")

For Each barcode As BarcodeResult In result
	Dim barcodePoints() As PointF = barcode.Points

	Dim x1 As Single = barcodePoints.Select(Function(b) b.X).Min()
	Dim y1 As Single = barcodePoints.Select(Function(b) b.Y).Min()

'INSTANT VB TODO TASK: There is no VB equivalent to the C# 'null-forgiving operator':
'ORIGINAL LINE: Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);
	Dim rectangle As New Rectangle(CInt(Math.Truncate(x1)), CInt(Math.Truncate(y1)), CInt(barcode.Width), CInt(barcode.Height))

	bitmap = bitmap.Redact(rectangle, Color.Magenta)

	' Save the image
	bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png)
Next barcode
$vbLabelText   $csharpLabel
Three barcode samples (A, B, C) showing different encoded data with similar visual patterns
Three redacted content blocks with illegible text fragments

Powyższy fragment kodu odczytuje wiele kodów kreskowych znajdujących się w pliku graficznym. Aby to osiągnąć, używamy kombinacji dwóch bibliotek: IronBarcode i IronDrawing. Aby uzyskać obiekt BarcodeResult i wyodrębnić z niego właściwości, najpierw odczytujemy BarCODES dostępne w pliku obrazu za pomocą metody BarcodeReader.Read(). Jednocześnie plik obrazu wejściowego musi zostać przekonwertowany na obiekt AnyBitmap, aby można było zastosować metodę redagowania do obrazu. Gdy już mamy obiekt BarcodeResults, możemy zastosować pętlę i iterować przez niego, aby uzyskać X1, Y1, Width oraz Height każdego BARCODE'a dostępnego na obrazie i wykorzystać je we właściwościach CropRectangle metody AnyBitmap.Redact().

Dlaczego numer strony jest ważny w przypadku dokumentów wielostronicowych?

Użytkownicy mogą uzyskać numer strony, na której znaleziono BarCode. Jest to przydatna funkcja dla użytkowników korzystających z wielostronicowych dokumentów zawierających wiele BARCODE-ów, którzy muszą znać lokalizację BARCODE-ów w dokumencie w celu dalszego przetwarzania. Ta funkcja jest niezbędna podczas odczytywania barcode'ów z dokumentów PDF lub przetwarzania dokumentów w partiach w aplikacjach Enterprise.

Spójrz na poniższy fragment kodu:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-page-number.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page number to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value " + barcode.ToString() + " is found on page number " + barcode.PageNumber);
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Output page number to console
For Each barcode As BarcodeResult In result
	Console.WriteLine("The barcode value " & barcode.ToString() & " is found on page number " & barcode.PageNumber)
Next barcode
$vbLabelText   $csharpLabel

Powyższy fragment kodu ilustruje jeden z przypadków użycia, w którym użytkownicy potrzebują, aby program zwrócił value BARCODE-ów znalezionych w wielostronicowym dokumencie PDF oraz odpowiadające im numery stron. Kod wykorzystuje metodę BarcodeReader.ReadPdf() do odczytu BarCodes w wielostronicowym dokumencie PDF, która zwraca obiekt BarcodeResults przechowujący każdy BarcodeResult znaleziony w dokumencie. Stosujemy pętlę i iterujemy przez każdy element obiektu, aby pobrać value kodów BarCode oraz numer strony, na której zostały one znalezione. Oprócz tego przypadku użycia, użytkownicy mogą wykorzystać tę właściwość do debugowania, aby sprawdzić, czy wszystkie kody kreskowe w dokumencie zostały odczytane.

Zwróć uwagęWartość zwracana przez tę właściwość jest liczone od 1, co oznacza, że pierwsza strona ma zawsze numer jeden, a nie zero

Jak wykryć obrót kodu kreskowego i orientację strony?

Using IronBarcode, użytkownicy mogą uzyskać informacje o orientacji kodu kreskowego oraz orientacji strony, na której został on znaleziony. Aby wyodrębnić te dwie informacje, należy uzyskać dostęp do właściwości Rotation i PageOrientation z obiektu BarcodeResult. Rotation zwraca liczbę całkowitą reprezentującą kąt obrotu znalezionego BarCode'a. Ta funkcja działa w połączeniu z możliwościami korekcji orientacji obrazu, aby zapewnić dokładny odczyt BarCode niezależnie od kąta skanowania.

Spójrz na poniższy fragment kodu:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-orientation.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page orientation and rotation to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.PageOrientation);
    Console.WriteLine(barcode.Rotation);
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Output page orientation and rotation to console
For Each barcode As BarcodeResult In result
	Console.WriteLine(barcode.Value)
	Console.WriteLine(barcode.PageOrientation)
	Console.WriteLine(barcode.Rotation)
Next barcode
$vbLabelText   $csharpLabel

Powyższy fragment kodu został uruchomiony z dołączonym przykładowym plikiem PDF, aby udowodnić, że użytkownicy mogą pobrać orientację strony i obrót BarCode, uzyskując odpowiednio pageOrientation i BarCode rotation. Ta funkcja jest przydatna głównie do celów debugowania.

Zwróć uwagęIronBarcode może odczytywać tylko barcode'e o obrotach BarcodeResult.PageOrientation, BarcodeResult.Rotation, 0, 90, 180 oraz 270 stopni. IronBarcode nie zwróci żadnej wartości, jeśli BarCode ma wartość obrotu inną niż wymienione. PageOrientation zwraca obiekt PageOrientation, który składa się z Portrait lub Landscape.

Jaka jest różnica między właściwościami typu tekstowego a wartościowym?

Oczywiście główną właściwością, którą użytkownicy będą chcieli uzyskać podczas korzystania z IronBarcode, jest jego value i text. Te dwie właściwości są często używane zamiennie i zwracają ten sam value. Oprócz tego użytkownicy mogą skorzystać z metody BarcodeResult.ToString(), aby osiągnąć ten sam rezultat. Podczas pracy ze specjalistycznymi aplikacjami lub eksportowania danych BARCODE jako strumieni, te właściwości zapewniają elastyczne sposoby uzyskiwania dostępu do zawartości BARCODE w preferowanym formacie.

Poniższy fragment kodu ilustruje to:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-text-value.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("barcodestamped3.pdf");

// Output text value to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.Text);
    Console.WriteLine(barcode.ToString());
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("barcodestamped3.pdf")

' Output text value to console
For Each barcode As BarcodeResult In result
	Console.WriteLine(barcode.Value)
	Console.WriteLine(barcode.Text)
	Console.WriteLine(barcode.ToString())
Next barcode
$vbLabelText   $csharpLabel

Z powyższego fragmentu kodu wynika, że użytkownicy potrzebują zaledwie kilku wierszy kodu, aby odczytać kody kreskowe z obrazu za pomocą IronBarcode. Po iteracji przez BarcodeResults zwrócone przez metodę BarcodeReader.Read(), wyświetlamy na konsoli wynik uzyskania właściwości Value i Text, a także wywołujemy metodę BarcodeResult.ToString(), aby pokazać, że wszystkie one zwracają tę samą wartość value.

Krótko mówiąc, IronBarcode to idealny interfejs API dla użytkowników do wykonywania wielu operacji związanych z kodami kreskowymi, nie ograniczających się do ich zapisywania i dekodowania. Dzięki obsłudze różnych formatów danych wyjściowych użytkownicy mogą zrobić znacznie więcej z obiektem BarcodeResult zwracanym przez IronBarcode.

Często Zadawane Pytania

Jakie formaty wyjściowe obsługuje odczyt kodów kreskowych C#?

IronBarcode oferuje wiele formatów wyjściowych, w tym BarcodeImage, BarcodeType, BinaryValue, współrzędne, wymiary, numery stron, orientację, właściwości tekstu i wartości. Te formaty umożliwiają kompleksowe przetwarzanie danych kodów kreskowych dla różnych aplikacji .NET.

Jak mogę odczytać wartość kodu kreskowego w jednej linii kodu?

Z IronBarcode możesz odczytać kod kreskowy w jednej linii za pomocą: var result = IronBarCode.BarcodeReader.Read('input.png'); To od razu daje ci dostęp do wartości i rodzaju kodu kreskowego przez result[0].Value i result[0].BarcodeType.

Jakie właściwości są dostępne w BarcodeResult?

Obiekt BarcodeResult w IronBarcode zawiera właściwości, w tym BarcodeImage, BarcodeType, BinaryValue, współrzędne, wysokość i szerokość, numer strony, kod kreskowy, orientację strony, tekst i wartość - dostarczając kompleksowych danych do przetwarzania kodów kreskowych.

Czy mogę wyodrębniać i zapisywać obrazy kodów kreskowych po ich odczytaniu?

Tak, IronBarcode przechowuje znalezione kody kreskowe jako obiekty AnyBitmap w właściwości BarcodeImage. Możesz pobrać ten obiekt, aby dalej przetwarzać obraz lub zapisać go jako kopię trwałą, eliminując potrzebę dodatkowego kodu do wyodrębnienia obrazów kodów kreskowych.

Jak uzyskać dostęp do współrzędnych i wymiarów kodu kreskowego?

IronBarcode dostarcza dane współrzędne, w tym pozycje x i y oraz wymiary wysokości i szerokości dla każdego wykrytego kodu kreskowego. Te właściwości są dostępne poprzez obiekt BarcodeResult dla precyzyjnego śledzenia lokalizacji kodu kreskowego.

Jaka jest różnica między właściwościami Text a Value?

W IronBarcode zarówno właściwości Text, jak i Value zawierają treść danych kodu kreskowego. Te właściwości są częścią obiektu BarcodeResult i mogą być używane zamiennie do uzyskiwania informacji dekodowanego kodu kreskowego.

Czy mogę określić, na której stronie znalazł się kod kreskowy?

Tak, IronBarcode zawiera właściwość PageNumber w obiekcie BarcodeResult, umożliwiającą ustalenie, na której stronie dokumentu wielostronicowego lub PDF znajdował się każdy wykryty kod kreskowy.

Jak mogę zidentyfikować typ wykrytego kodu kreskowego?

Właściwość BarcodeType w obiekcie BarcodeResult IronBarcode identyfikuje konkretny wykryty format kodu kreskowego (np. QR Code, Code 128 itd.), umożliwiając przetwarzanie specyficzne dla formatu w twojej aplikacji.

Jakie umiejętności programistyczne są potrzebne do zaimplementowania IronBarcode w projekcie?

Podstawowa znajomość programowania w C# jest wystarczająca do zaimplementowania IronBarcode w projekcie, ponieważ oferuje on nieskomplikowane metody i kompleksową dokumentację do prowadzenia deweloperów.

Czy IronBarcode jest odpowiedni zarówno dla małych projektów, jak i dużych aplikacji korporacyjnych?

IronBarcode jest zaprojektowany do bycia skalowalnym i wszechstronnym, dzięki czemu jest odpowiedni zarówno dla małych projektów, jak i dużych aplikacji korporacyjnych, które wymagają solidnych rozwiązań kodów kreskowych.

Hairil Hasyimi Bin Omar
Inżynier oprogramowania
Jak wszyscy wielcy inżynierowie, Hairil jest zapalonym uczniem. Doskonali swoją wiedzę na temat C#, Pythona i Javy, wykorzystując tę wiedzę, aby dodawać wartości członkom zespołu Iron Software. Hairil dołączył do zespołu Iron Software z Universiti Teknologi MARA w Malezji, gdzie uzyskał tytuł licencjata ...
Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 2,240,258 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package BarCode
uruchom przykład zobacz, jak twoje ciągi zamieniają się w kody kreskowe.