{"id":15998227,"url":"https://github.com/yushulx/dotnet-barcode-qr-code-sdk","last_synced_at":"2026-02-22T20:41:11.451Z","repository":{"id":45730650,"uuid":"91551358","full_name":"yushulx/dotnet-barcode-qr-code-sdk","owner":"yushulx","description":".NET barcode SDK for Windows, Linux, macOS, Android and iOS","archived":false,"fork":false,"pushed_at":"2025-07-01T07:32:08.000Z","size":212386,"stargazers_count":23,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-05T22:04:00.062Z","etag":null,"topics":["aztec","barcode","code128","code39","datamatrix","ean13","pdf417","qrcode"],"latest_commit_sha":null,"homepage":"https://www.nuget.org/packages/BarcodeQRCodeSDK","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yushulx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-05-17T08:19:05.000Z","updated_at":"2025-09-05T11:37:11.000Z","dependencies_parsed_at":"2025-06-16T01:35:12.157Z","dependency_job_id":null,"html_url":"https://github.com/yushulx/dotnet-barcode-qr-code-sdk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yushulx/dotnet-barcode-qr-code-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yushulx%2Fdotnet-barcode-qr-code-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yushulx%2Fdotnet-barcode-qr-code-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yushulx%2Fdotnet-barcode-qr-code-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yushulx%2Fdotnet-barcode-qr-code-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yushulx","download_url":"https://codeload.github.com/yushulx/dotnet-barcode-qr-code-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yushulx%2Fdotnet-barcode-qr-code-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29726402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T20:09:16.275Z","status":"ssl_error","status_checked_at":"2026-02-22T20:09:13.750Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aztec","barcode","code128","code39","datamatrix","ean13","pdf417","qrcode"],"created_at":"2024-10-08T08:08:14.832Z","updated_at":"2026-02-22T20:41:11.409Z","avatar_url":"https://github.com/yushulx.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 1D and 2D Barcode SDK\n![Barcode and QR Code SDK](https://img.shields.io/nuget/v/BarcodeQRCodeSDK)\n\nThis project provides a .NET wrapper for the [Dynamsoft Barcode Reader SDK v9.x](https://www.dynamsoft.com/barcode-reader/overview/), enabling 1D and 2D barcode recognition for .NET and C++ applications. It supports development across multiple platforms, including **Windows**, **Linux**, **macOS**, **Android**, and **iOS**. The wrapper is designed to allow complete customization of the .NET API to suit your specific barcode scanning needs.\n\n\u003e Note: This project is an unofficial, community-maintained .NET wrapper for the Dynamsoft Barcode SDK. For the most reliable and fully-supported solution, consider using Dynamsoft's official packages: [Dynamsoft.DotNet.Barcode](https://www.nuget.org/packages/Dynamsoft.DotNet.Barcode) for Windows and Linux, and [Dynamsoft.BarcodeReaderBundle.Maui](https://www.nuget.org/packages/Dynamsoft.BarcodeReaderBundle.Maui) for Android and iOS.\n\n## About Dynamsoft .NET Barcode SDK\n- Get a [30-day FREE trial license](https://www.dynamsoft.com/customer/license/trialLicense/?product=dcv\u0026package=cross-platform) to activate the SDK.\n- Official .NET Packages:\n    - **Dynamsoft.DotNet.Barcode**: A comprehensive .NET barcode SDK for Windows and Linux platforms.\n    \n        ```bash\n        dotnet add package Dynamsoft.DotNet.Barcode\n        ```\n    \n    - **Dynamsoft.BarcodeReaderBundle.Maui**: A cross-platform barcode SDK for Android and iOS, optimized for .NET MAUI applications.\n        \n        ```bash\n        dotnet add package Dynamsoft.BarcodeReaderBundle.Maui\n        ```\n\n### Comparison Table\n| Feature | Unofficial Wrapper (Community) | Official Dynamsoft.DotNet.Barcode | Official Dynamsoft.BarcodeReaderBundle.Maui |\n| --- | --- | --- |--- |\n| Support | Community-driven, best effort | Official support from Dynamsoft | Official support from Dynamsoft |\n| Documentation | README only | [Online Documentation](https://www.dynamsoft.com/barcode-reader/docs/server/programming/dotnet/api-reference/) | [Online Documentation](https://www.dynamsoft.com/barcode-reader/docs/mobile/programming/maui/api-reference/) |\n| API Coverage | Limited | Full API coverage | Full API coverage |\n| Windows | **Yes** | **Yes** | No |\n| Linux | **Yes** | **Yes** | No |\n| macOS | **Yes** | No | No |\n| Android | **Yes** | No | **Yes** |\n| iOS | **Yes** | No | **Yes** |\n\n## C++ Development\n\n### Quick Start\n```cpp\n#include \u003ciostream\u003e\n#include \u003cfstream\u003e\n\n#include \"DynamsoftBarcodeReader.h\"\n#include \"DynamsoftCommon.h\"\n\nusing namespace dynamsoft::dbr;\n\ntypedef struct BarcodeFormatSet\n{\n\tint barcodeFormatIds;\n\tint barcodeFormatIds_2;\n}BarcodeFormatSet;\n\nunsigned long GetTime()\n{\n#if defined(_WIN64) || defined(_WIN32)\n\treturn GetTickCount64();\n#else\n\tstruct timeval timing;\n\tgettimeofday(\u0026timing, NULL);\n\treturn timing.tv_sec * 1000 + timing.tv_usec / 1000;\n#endif\n}\n\nvoid ToHexString(unsigned char* pSrc, int iLen, char* pDest)\n{\n\tconst char HEXCHARS[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };\n\n\tint i;\n\tchar* ptr = pDest;\n\n\tfor (i = 0; i \u003c iLen; ++i)\n\t{\n\t\tsnprintf(ptr, 4, \"%c%c \", HEXCHARS[(pSrc[i] \u0026 0xF0) \u003e\u003e 4], HEXCHARS[(pSrc[i] \u0026 0x0F) \u003e\u003e 0]);\n\t\tptr += 3;\n\t}\n}\n\nvoid OutputResult(CBarcodeReader\u0026 reader, int errorcode, float time)\n{\n\tchar* pszTemp = NULL;\n\tchar* pszTemp1 = NULL;\n\tchar* pszTemp2 = NULL;\n\tint iRet = errorcode;\n\tpszTemp = (char*)malloc(4096);\n\tif (iRet != DBR_OK \u0026\u0026 iRet != DBRERR_MAXICODE_LICENSE_INVALID \u0026\u0026 iRet != DBRERR_AZTEC_LICENSE_INVALID \u0026\u0026 iRet != DBRERR_LICENSE_EXPIRED \u0026\u0026 iRet != DBRERR_QR_LICENSE_INVALID \u0026\u0026 iRet != DBRERR_GS1_COMPOSITE_LICENSE_INVALID \u0026\u0026\n\t\tiRet != DBRERR_1D_LICENSE_INVALID \u0026\u0026 iRet != DBRERR_PDF417_LICENSE_INVALID \u0026\u0026 iRet != DBRERR_DATAMATRIX_LICENSE_INVALID \u0026\u0026 iRet != DBRERR_GS1_DATABAR_LICENSE_INVALID \u0026\u0026 iRet != DBRERR_PATCHCODE_LICENSE_INVALID \u0026\u0026\n\t\tiRet != DBRERR_POSTALCODE_LICENSE_INVALID \u0026\u0026 iRet != DBRERR_DOTCODE_LICENSE_INVALID \u0026\u0026 iRet != DBRERR_DPM_LICENSE_INVALID \u0026\u0026 iRet != DBRERR_IRT_LICENSE_INVALID \u0026\u0026 iRet != DMERR_NO_LICENSE \u0026\u0026 iRet != DMERR_TRIAL_LICENSE)\n\t{\n\t\tsnprintf(pszTemp, 4096, \"Failed to read barcode: %s\\r\\n\", CBarcodeReader::GetErrorString(iRet));\n\t\tprintf(\"%s\", pszTemp);\n\t\tfree(pszTemp);\n\t\treturn;\n\t}\n\n\tTextResultArray* paryResult = NULL;\n\treader.GetAllTextResults(\u0026paryResult);\n\n\tif (paryResult-\u003eresultsCount == 0)\n\t{\n\t\tsnprintf(pszTemp, 4096, \"No barcode found. Total time spent: %.3f seconds.\\r\\n\", time);\n\t\tprintf(\"%s\", pszTemp);\n\t\tfree(pszTemp);\n\t\tCBarcodeReader::FreeTextResults(\u0026paryResult);\n\t\treturn;\n\t}\n\n\tsnprintf(pszTemp, 4096, \"Total barcode(s) found: %d. Total time spent: %.3f seconds\\r\\n\\r\\n\", paryResult-\u003eresultsCount, time);\n\tprintf(\"%s\", pszTemp);\n\tfor (int iIndex = 0; iIndex \u003c paryResult-\u003eresultsCount; iIndex++)\n\t{\n\t\tsnprintf(pszTemp, 4096, \"Barcode %d:\\r\\n\", iIndex + 1);\n\t\tprintf(\"%s\", pszTemp);\n\t\tsnprintf(pszTemp, 4096, \"    Type: %s\\r\\n\", paryResult-\u003eresults[iIndex]-\u003ebarcodeFormatString);\n\n\t\tprintf(\"%s\", pszTemp);\n\t\tsnprintf(pszTemp, 4096, \"    Value: %s\\r\\n\", paryResult-\u003eresults[iIndex]-\u003ebarcodeText);\n\t\tprintf(\"%s\", pszTemp);\n\n\t\tpszTemp1 = (char*)malloc(paryResult-\u003eresults[iIndex]-\u003ebarcodeBytesLength * 3 + 1);\n\t\tpszTemp2 = (char*)malloc(paryResult-\u003eresults[iIndex]-\u003ebarcodeBytesLength * 3 + 100);\n\t\tToHexString(paryResult-\u003eresults[iIndex]-\u003ebarcodeBytes, paryResult-\u003eresults[iIndex]-\u003ebarcodeBytesLength, pszTemp1);\n\t\tsnprintf(pszTemp2, paryResult-\u003eresults[iIndex]-\u003ebarcodeBytesLength * 3 + 100, \"    Hex Data: %s\\r\\n\", pszTemp1);\n\t\tprintf(\"%s\", pszTemp2);\n\t\tfree(pszTemp1);\n\t\tfree(pszTemp2);\n\t}\n\n\tfree(pszTemp);\n\tCBarcodeReader::FreeTextResults(\u0026paryResult);\n}\n\nint main(int argc, const char* argv[])\n{\n\tint iIndex = 0;\n\tint iRet = -1;\n\tunsigned long ullTimeBegin = 0;\n\tunsigned long ullTimeEnd = 0;\n\n\tchar szErrorMsg[256];\n\tPublicRuntimeSettings runtimeSettings;\n\n\tprintf(\"*************************************************\\r\\n\");\n\tprintf(\"Welcome to Dynamsoft Barcode Reader Demo\\r\\n\");\n\tprintf(\"*************************************************\\r\\n\");\n\tprintf(\"Hints: Please input 'Q' or 'q' to quit the application.\\r\\n\");\n\n\tiRet = CBarcodeReader::InitLicense(\"LICENSE-KEY\", szErrorMsg, 256);\n\tif (iRet != DBR_OK)\n\t{\n\t\tprintf(\"InitLicense Failed: %s\\n\", szErrorMsg);\n\t}\n\tCBarcodeReader reader;\n\n\n\twhile (1)\n\t{\n\t\tstd::string input;\n\t\tstd::cout \u003c\u003c \"\\r\\n\u003e\u003e Step 1: Input your image file's full path:\\r\\n\";\n\t\tstd::cin \u003e\u003e input;\n\n\t\tif (input._Equal(\"q\") || input._Equal(\"Q\"))\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tstd::ifstream file(input);\n\n\t\tif (!file.good()) {\n\t\t\tstd::cout \u003c\u003c \"Please input a valid path.\\r\\n\" \u003c\u003c std::endl;\n\t\t\tcontinue;\n\t\t}\n\n\t\treader.InitRuntimeSettingsWithString(\"{\\\"ImageParameter\\\":{\\\"Name\\\":\\\"BestCoverage\\\",\\\"BarcodeFormatIds\\\": [\\\"BF_ALL\\\"],\\\"BarcodeFormatIds_2\\\": [\\\"BF2_POSTALCODE\\\", \\\"BF2_DOTCODE\\\"] , \\\"DeblurLevel\\\":9,\\\"ExpectedBarcodesCount\\\":512,\\\"ScaleDownThreshold\\\":100000,\\\"LocalizationModes\\\":[{\\\"Mode\\\":\\\"LM_CONNECTED_BLOCKS\\\"},{\\\"Mode\\\":\\\"LM_SCAN_DIRECTLY\\\"},{\\\"Mode\\\":\\\"LM_STATISTICS\\\"},{\\\"Mode\\\":\\\"LM_LINES\\\"},{\\\"Mode\\\":\\\"LM_STATISTICS_MARKS\\\"}],\\\"GrayscaleTransformationModes\\\":[{\\\"Mode\\\":\\\"GTM_ORIGINAL\\\"},{\\\"Mode\\\":\\\"GTM_INVERTED\\\"}]}}\", CM_OVERWRITE, szErrorMsg, 256);\n\n\t\treader.GetRuntimeSettings(\u0026runtimeSettings);\n\t\truntimeSettings.barcodeFormatIds = BF_ALL;\n\t\truntimeSettings.barcodeFormatIds_2 = BF2_POSTALCODE | BF2_DOTCODE;\n\t\tiRet = reader.UpdateRuntimeSettings(\u0026runtimeSettings, szErrorMsg, 256);\n\t\tif (iRet != DBR_OK)\n\t\t{\n\t\t\tprintf(\"Error code: %d. Error message: %s\\n\", iRet, szErrorMsg);\n\t\t\treturn -1;\n\t\t}\n\n\t\tullTimeBegin = GetTime();\n\t\tiRet = reader.DecodeFile(input.c_str(), \"\");\n\t\tullTimeEnd = GetTime();\n\t\tOutputResult(reader, iRet, (((float)(ullTimeEnd - ullTimeBegin)) / 1000));\n\n\t}\n\n\treturn 0;\n}\n```\n\nPlease refer to [C++ Development](https://www.dynamsoft.com/barcode-reader/docs/server/programming/cplusplus/user-guide.html) for more information.\n\n## .NET Development\n\n### Quick Start\n\n```csharp\nusing System;\nusing Dynamsoft;\n\nnamespace Test\n{\n    class Program\n    {\n        static void Main(string[] args)\n        {\n            BarcodeQRCodeReader.InitLicense(\"LICENSE-KEY\"); // Get a license key from https://www.dynamsoft.com/customer/license/trialLicense?product=dbr\n            BarcodeQRCodeReader? reader = null;\n            try {\n                reader = BarcodeQRCodeReader.Create();\n                Console.WriteLine(\"Please enter an image file: \");\n                string? filename = Console.ReadLine();\n                if (filename != null) {\n                    Result[]? results = reader.DecodeFile(filename);\n                    if (results != null) {\n                        foreach (Result result in results) {\n                            Console.WriteLine(result.Text);\n                        }\n                    }\n                    else {\n                        Console.WriteLine(\"No barcode found.\");\n                    }\n                }\n            }\n            catch (Exception e)\n            {\n                Console.WriteLine(e.Message);\n            }\n            finally\n            {\n                if (reader != null)\n                {\n                    reader.Destroy();\n                }\n            }\n        }\n    }\n}\n```\n\n### Methods\n- `public static void InitLicense(string license)`\n- `public static BarcodeQRCodeReader Create()`\n- `public Result[]? DecodeFile(string filename)`\n- `public Result[]? DecodeBuffer(byte[] buffer, int width, int height, int stride, ImagePixelFormat format)`\n- `public Result[]? DecodeBase64(string base64string)`\n- `public static string? GetVersionInfo()`\n- `public void SetParameters(string parameters)`\n\n### Usage\n- Set the license key:\n    \n    ```csharp\n    BarcodeQRCodeReader.InitLicense(\"LICENSE-KEY\"); \n    ```\n- Initialize the barcode and QR code reader object:\n    \n    ```csharp\n    BarcodeQRCodeReader? reader = BarcodeQRCodeReader.Create();\n    ```\n- Decode barcode and QR code from an image file:\n\n    ```csharp\n    Result[]? results = reader.DecodeFile(filename);\n    ```    \n- Decode barcode and QR code from a base64 string:\n    \n    ```csharp\n    Result[]? results = reader.DecodeBase64(base64string);\n    ```     \n    \n- Decode barcode and QR code from a buffer:\n    \n    ```csharp\n    BitmapData bmpData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height),\n    ImageLockMode.ReadWrite, bitmap.PixelFormat);\n\n    BarcodeQRCodeReader.ImagePixelFormat format = BarcodeQRCodeReader.ImagePixelFormat.IPF_ARGB_8888;\n\n    switch (bitmap.PixelFormat)\n    {\n        case PixelFormat.Format24bppRgb:\n            format = BarcodeQRCodeReader.ImagePixelFormat.IPF_RGB_888;\n            break;\n        case PixelFormat.Format32bppArgb:\n            format = BarcodeQRCodeReader.ImagePixelFormat.IPF_ARGB_8888;\n            break;\n        case PixelFormat.Format16bppRgb565:\n            format = BarcodeQRCodeReader.ImagePixelFormat.IPF_RGB_565;\n            break;\n        case PixelFormat.Format16bppRgb555:\n            format = BarcodeQRCodeReader.ImagePixelFormat.IPF_RGB_555;\n            break;\n        case PixelFormat.Format8bppIndexed:\n            format = BarcodeQRCodeReader.ImagePixelFormat.IPF_GRAYSCALED;\n            break;\n    }\n\n    int length = bitmap.Height * bmpData.Stride;\n    byte[] bytes = new byte[length];\n    Marshal.Copy(bmpData.Scan0, bytes, 0, length);\n\n    Result[]? results = reader.DecodeBuffer(bytes, bitmap.Width, bitmap.Height, bmpData.Stride, format);\n    bitmap.UnlockBits(bmpData);\n    ```\n- Get SDK version number:\n\n    ```csharp\n    string? version = BarcodeQRCodeReader.GetVersionInfo();\n    ```\n- Customize parameters:\n    \n    ```csharp\n    // Refer to https://www.dynamsoft.com/barcode-reader/parameters/structure-and-interfaces-of-parameters.html?ver=latest\n    reader.SetParameters(\"{\\\"Version\\\":\\\"3.0\\\", \\\"ImageParameter\\\":{\\\"Name\\\":\\\"IP1\\\", \\\"BarcodeFormatIds\\\":[\\\"BF_QR_CODE\\\", \\\"BF_ONED\\\"], \\\"ExpectedBarcodesCount\\\":20}}\");\n    ```\n\n## Example\n- [command-line](https://github.com/yushulx/dotnet-barcode-qr-code-sdk/tree/main/example/command-line)\n    \n    ```bash\n    dotnet restore\n    dotnet run\n    ```\n    \n    ![.NET 6 command-line barcode and QR code reader](https://camo.githubusercontent.com/f9bb76dc0439f780e01dbdae1d5d26e5cca93cac9ddb38a7e0dceca93853e9df/68747470733a2f2f7777772e64796e616d736f66742e636f6d2f636f6465706f6f6c2f696d672f323032322f30332f636f6d6d616e642d6c696e652d646f746e65742d626172636f64652d71722d636f64652d7265616465722e706e67)\n\n- [desktop-gui](https://github.com/yushulx/dotnet-barcode-qr-code-sdk/tree/main/example/desktop-gui) (**Windows Only**)\n    \n    ```bash\n    dotnet restore\n    dotnet run\n    ```\n    \n    ![.NET 6 Desktop barcode and QR code reader](https://camo.githubusercontent.com/290d8a459b7f63d8020e4069e278089cb0dcd98475fd5e9b6b13aed735ebcb9a/68747470733a2f2f7777772e64796e616d736f66742e636f6d2f636f6465706f6f6c2f696d672f323032322f30332f6465736b746f702d646f746e65742d626172636f64652d71722d636f64652d7265616465722e706e67) \n\n- [web](https://github.com/yushulx/dotnet-barcode-qr-code-sdk/tree/main/example/web)\n  \n    ```bash\n    dotnet restore\n    dotnet run\n    ```\n    \n    ![ASP.NET online barcode and QR code reader](https://camo.githubusercontent.com/f29ef9d397bc0ca137c6836ce03d026dd8f52b45cdd8f6503e5b14b955ea08ba/68747470733a2f2f7777772e64796e616d736f66742e636f6d2f636f6465706f6f6c2f696d672f323032322f30342f6173702d6e65742d6d6f62696c652d626172636f64652d71722d636f64652d7265616465722e706e67)\n\n- [Mobile](https://github.com/yushulx/dotnet-barcode-qr-code-sdk/tree/main/example/maui)\n\n    ![MAUI Android barcode reader](https://camo.githubusercontent.com/375580b1a4b16e4d4fe013378d42d6a3020e33efe86cc0442b9142c585b39beb/68747470733a2f2f7777772e64796e616d736f66742e636f6d2f636f6465706f6f6c2f696d672f323032342f30312f646f746e65742d6d6175692d616e64726f69642d696f732d626172636f64652d7363616e6e65722e706e67)\n\n## Building NuGet Package from Source Code\n\n```bash\n#android \ncd android\ndotnet build --configuration Release\n\n#desktop\ncd desktop\ndotnet build --configuration Release\n\n#ios \ncd ios\ndotnet build --configuration Release\n\n# package\nnuget pack .\\BarcodeQRCodeSDK.nuspec\n```\n\n## Supported Barcode Symbologies\n- Linear Barcodes (1D)\n  - Code 39 (including Code 39 Extended)\n  - Code 93\n  - Code 128\n  - Codabar\n  - Interleaved 2 of 5\n  - EAN-8\n  - EAN-13\n  - UPC-A\n  - UPC-E\n  - Industrial 2 of 5\n\n- 2D Barcodes\n  - QR Code (including Micro QR Code and Model 1)\n  - Data Matrix\n  - PDF417 (including Micro PDF417)\n  - Aztec Code\n  - MaxiCode (mode 2-5)\n  - DotCode\n\n- Patch Code\n- GS1 Composite Code\n- GS1 DataBar\n  - Omnidirectional,\n  - Truncated, Stacked, Stacked\n  - Omnidirectional, Limited,\n  - Expanded, Expanded Stacked\n\n- Postal Codes\n  - USPS Intelligent Mail\n  - Postnet\n  - Planet\n  - Australian Post\n  - UK Royal Mail\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyushulx%2Fdotnet-barcode-qr-code-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyushulx%2Fdotnet-barcode-qr-code-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyushulx%2Fdotnet-barcode-qr-code-sdk/lists"}