{"@attributes":{"version":"2.0"},"channel":{"title":"Documentation \u2013 Barcode Recognition","link":"https:\/\/docs.aspose.com\/barcode\/nodejsjava\/barcode-recognition\/","description":"Recent content in Barcode Recognition on Documentation","generator":"Hugo -- gohugo.io","item":[{"title":"Nodejsjava: Barcode Reading Basics","link":"https:\/\/docs.aspose.com\/barcode\/nodejsjava\/barcode-reading-basics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/barcode\/nodejsjava\/barcode-reading-basics\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\n<a href=\"https:\/\/products.aspose.app\/barcode\/recognize\">Read Barcodes Online<\/a>: You can test the quality of <em><strong>Aspose.BarCode<\/strong><\/em> recognition functionality and view the results online.\n<\/div>\n\n<h2 id=\"overview\"><strong>Overview<\/strong><\/h2>\n<p>Class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeReader\"><em>BarCodeReader<\/em><\/a> in <em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em> is the most important to implement barcode recognition for more than 60 symbologies. First, it is necessary to indentify a barcode source that can be represented as a file, a stream, or a bitmap object. After that, target symbologies needs to be specified using values from the <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/global#DecodeType\"><em>DecodeType<\/em><\/a> global property. By default, the library uses the <em>DecodeType.ALL_SUPPORTED_TYPES<\/em> setting that implies iterating over all supported barcode types to check for their presence in the source image. In this case, barcode scanning and recognition takes much more time. Developers can specify explicitly not only the desired symbologies but also a target region or regions in the source image. This allows optimizing the scanning process by avoiding areas without barcodes. Target regions can be determined using class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/Rectangle\"><em>Rectangle<\/em><\/a>.<\/p>\n\n\n<div class=\"alert alert-primary\" role=\"alert\">\n\n<em>If you need any clarifications, feel free to reach out to <a href=\"https:\/\/docs.aspose.com\/barcode\/barcode\/nodejsjava\/technical-support\/\">Aspose Technical Support<\/a>: ask your questions at <a href=\"https:\/\/forum.aspose.com\/c\/barcode\/13\">Aspose.Barcode Forum<\/a> or contact <a href=\"https:\/\/helpdesk.aspose.com\/\">Aspose Paid Support Helpdesk<\/a>.<\/em>\n<\/div>\n\n<h2 id=\"main-recognition-parameters\"><strong>Main Recognition Parameters<\/strong><\/h2>\n<p>In <em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em>, barcode reading is performed according to the following steps:<\/p>\n<ul>\n<li>Determine the barcode source (image file, stream, or bitmap), e.g. set the path to a source image<\/li>\n<li>Select target barcode types. <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/global#DecodeType\"><em>DecodeType<\/em><\/a> is set to <em>DecodeType.ALL_SUPPORTED_TYPES<\/em> by default meaning that the sources image will be scanned to search for all supported barcode types; in this case, time required to finish the barcode detection process will increase.<\/li>\n<\/ul>\n<p>The library contains the <em>ReadBarCodes<\/em> method of class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeReader\"><em>BarCodeReader<\/em><\/a> that returns the result of barcode reading in an array of the <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeResult\"><em>BarCodeResult<\/em><\/a> type.<\/p>\n<p align=\"center\"><img src=\"multiple_codes.png\" hight=\"50%\" width=\"50%\"><\/p>  \n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to detect and read Code39 and Code128 barcodes\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"o\">[<\/span><span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span><span class=\"o\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"get-barcode-reading-results\"><strong>Get Barcode Reading Results<\/strong><\/h2>\n<p>To load barcode reading results, it is needed to call the <em>ReadBarCodes<\/em> method that provides a <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeResult\"><em>BarCodeResult<\/em><\/a> array. The current output can be accessed using the <em>getFoundBarCodes<\/em> method that enables getting decoding results or the <em>getFoundCount<\/em> method that returns the number of detected barcodes.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to obtain the barcode reading result\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">Code128<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;12345&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"o\">[<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span> <span class=\"o\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Confidence: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getConfidence<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode ReadingQuality: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getReadingQuality<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Angle: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getRegion<\/span><span class=\"o\">().<\/span><span class=\"na\">getAngle<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to read barcodes with BarCodeReader\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"o\">[<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span> <span class=\"o\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">for<\/span><span class=\"o\">(<\/span><span class=\"n\">let<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"n\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">getFoundCount<\/span><span class=\"o\">()<\/span> <span class=\"o\">&gt;<\/span> <span class=\"n\">i<\/span><span class=\"o\">;<\/span> <span class=\"o\">++<\/span><span class=\"n\">i<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span>  <span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">getFoundBarCodes<\/span><span class=\"o\">()[<\/span><span class=\"n\">i<\/span><span class=\"o\">].<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><\/code><\/pre><\/div><div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to read barcodes with BarCodeReader\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"o\">[<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span> <span class=\"o\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">for<\/span><span class=\"o\">(<\/span><span class=\"n\">let<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"n\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">getFoundCount<\/span><span class=\"o\">()<\/span> <span class=\"o\">&gt;<\/span> <span class=\"n\">i<\/span><span class=\"o\">;<\/span> <span class=\"o\">++<\/span><span class=\"n\">i<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">getFoundBarCodes<\/span><span class=\"o\">()[<\/span><span class=\"n\">i<\/span><span class=\"o\">].<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nl\">Value:<\/span> <span class=\"n\">The<\/span> <span class=\"n\">recognized<\/span> <span class=\"n\">barcodes<\/span> <span class=\"n\">count<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"set-source-barcode\"><strong>Set Source Barcode<\/strong><\/h2>\n<p>In <em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em>, there are three ways to set the barcode recognition source: from an image file, from a bitmap, or from a stream. The following five raster image formats are supported: PNG, JPEG, BMP, TIFF, or GIF. Three options to set the source for barcodes reading are explained further.<\/p>\n<h3 id=\"read-barcodes-from-files\"><strong>Read Barcodes from Files<\/strong><\/h3>\n<p>First of all, barcodes can be scanned and recognized from image files. The full or relative path to the source needs to be specified in the <em>BarCodeReader<\/em> constructor. Alternatively, the <em>setBarCodeImage<\/em> method can be used to pass the path to the existing object of class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeReader\"><em>BarCodeReader<\/em><\/a>.<\/p>\n<h3 id=\"read-barcodes-from-bitmap-objects\"><strong>Read Barcodes from Bitmap Objects<\/strong><\/h3>\n<p>In <em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em>, it is possible to use a graphical object or a bitmap as a source for barcode reading. Bitmap objects allow working with images consisting of pixel data. To read barcodes from a bitmap, the created bitmap object needs to be passed to the <em>BarCodeReader()<\/em> constructor or the <em>setBarCodeImage<\/em> method.<\/p>\n<h3 id=\"read-barcodes-from-streams\"><strong>Read Barcodes from Streams<\/strong><\/h3>\n<p>In <em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em>, a stream (in a binary format) can be also used as a source for barcode recognition. This option can be useful in some situations owing to its versatility and accessibility without file systems. A stream to read barcodes from needs to be passed to the <em>BarCodeReader()<\/em> constructor or the <em>setBarCodeImage<\/em> method.<\/p>\n<h2 id=\"setting-target-barcode-types\"><strong>Setting Target Barcode Types<\/strong><\/h2>\n<p><em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em> supports barcode recognition for 60+ various barcode types. To improve the efficiency of the recognition process and optimize its timing, it is recommended to set target symbologies in advance. Otheriwse, the <em>DecodeType.ALL_SUPPORTED_TYPES<\/em> setting of the <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/global#DecodeType\"><em>DecodeType<\/em><\/a> global property will be used by default meaning that the library will look over all supported barcode types to check for their presence in the source image. Using this setting will increase the time needed to complete barcode recognition.<\/p>\n<h3 id=\"listing-target-barcode-types-in-decodetype\"><strong>Listing Target Barcode Types in DecodeType<\/strong><\/h3>\n<p>Target barcode types can be specified by grouping them in a list and passing it to the <em>BarCodeReader()<\/em> constructor or the <em>setBarCodeReadType<\/em> method.<\/p>\n<h3 id=\"using-predefined-sets-for-barcode-types\"><strong>Using Predefined Sets for Barcode Types<\/strong><\/h3>\n<p>The <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/global#DecodeType\"><em>DecodeType<\/em><\/a> global property enables the following options for barcode reading:<\/p>\n<ul>\n<li><em>ALL_SUPPORTED_TYPES<\/em> - all available barcode types<\/li>\n<li><em>TYPES_1D<\/em> - all supported 1D types<\/li>\n<li><em>TYPES_2D<\/em> - all supported 2D types<\/li>\n<li><em>POSTAL_TYPES<\/em> - all available postal types<\/li>\n<li><em>MOST_COMMON_TYPES<\/em> - a set of most widespread barcode types defined according to Aspose recommendations<\/li>\n<\/ul>\n<p>The required set can be specified in the <em>BarCodeReader<\/em> constructor or passed to the <em>setBarCodeReadType<\/em> method.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to detect 1D barcodes\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"o\">[<\/span><span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">TYPES_1D<\/span><span class=\"o\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"setting-target-barcode-regions\"><strong>Setting Target Barcode Regions<\/strong><\/h2>\n<p>In <em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em>, it is possible to specify target areas for barcode detection by creating one or several objects of class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/Rectangle\"><em>Rectangle<\/em><\/a>. Setting target regions allows improving recognition efficiency and avoiding the regions without any barcodes. Target areas have to be determined accurately as the Aspose library apply heuristic approaches to identify target barcode detection areas. Focusing on too many image regions can lead to recognition efficiency deterioration.<\/p>\n<h3 id=\"unique-target-region\"><strong>Unique Target Region<\/strong><\/h3>\n<p>To set one target area for barcode recognition, it is necessary to create an object of class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/Rectangle\"><em>Rectangle<\/em><\/a> and then pass it to the <em>BarCodeReader<\/em> constructor or the <em>setBarCodeImage<\/em> method.<\/p>\n<h3 id=\"several-target-regions\"><strong>Several Target Regions<\/strong><\/h3>\n<p>It is also possible to set several target areas for barcode detection within the one source image. This can be done in the same way as described above for one target region, i.e., using the <em>BarCodeReader<\/em> constructor or the <em>setBarCodeImage<\/em> method.<\/p>\n<h2 id=\"recognition-abortion-using-manual-and-timeout-methods\"><strong>Recognition Abortion Using Manual and Timeout Methods<\/strong><\/h2>\n<p>Class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeReader\"><em>BarCodeReader<\/em><\/a> enables a method to interrupt the barcode reading process if it becomes unfeasible to complete. This method is called <em>setTimeOut<\/em> and is aimed to interrupt the barcode reading process immediately after the timeout value gets exceeded. By default, the <em>TimeOut<\/em> value is set to 0. It throws an exception called <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/RecognitionAbortedException\"><em>RecognitionAbortedException<\/em><\/a> if the recognition process could not be completed successfully.<\/p>\n\n      "},{"title":"Nodejsjava: Barcode Reading Settings","link":"https:\/\/docs.aspose.com\/barcode\/nodejsjava\/barcode-reading-settings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/barcode\/nodejsjava\/barcode-reading-settings\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\n<a href=\"https:\/\/products.aspose.app\/barcode\/recognize\">Read Barcodes Online<\/a>: You can test the quality of <em><strong>Aspose.BarCode<\/strong><\/em> recognition functionality and view results online.\n<\/div>\n\n<h2 id=\"overview\"><strong>Overview<\/strong><\/h2>\n<p>In the barcode recognition process implemented in <em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em>, barcode data decoding is initiated according to the special protocol after scanning the raw data from a graphical representation. Some linear and postal barcode types have passed standardization after their wide implementation, and therefore, it has lead to the presence of incompatible decoding formats. To resolve possible conflicts, class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeReader\"><em>BarCodeReader<\/em><\/a> provides a special class called <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarcodeSettings\"><em>BarcodeSettings<\/em><\/a> used to manage barcode decoding settings.<\/p>\n\n\n<div class=\"alert alert-primary\" role=\"alert\">\n\n<em>If you need any clarifications, feel free to reach out to <a href=\"https:\/\/docs.aspose.com\/barcode\/barcode\/nodejsjava\/technical-support\/\">Aspose Technical Support<\/a>: ask your questions at <a href=\"https:\/\/forum.aspose.com\/c\/barcode\/13\">Aspose.Barcode Forum<\/a> or contact <a href=\"https:\/\/helpdesk.aspose.com\/\">Aspose Paid Support Helpdesk<\/a>.<\/em>\n<\/div>\n\n<h2 id=\"checksum-verification\"><strong>Checksum Verification<\/strong><\/h2>\n<p>Various 1D and postal types include checksum control mechanisms for data integrity verification. To adjust checksum settings for data validation purposes, class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarcodeSettings\"><em>BarcodeSettings<\/em><\/a> contains the <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/global#ChecksumValidation\"><em>ChecksumValidation<\/em><\/a> global property. Generally, barcode types can be classified according to the following types: with obligatory checksum controls and with optional ones. The <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/global#ChecksumValidation\"><em>ChecksumValidation<\/em><\/a> global property suggests different options for these two groups. The barcode recognition procedure varies in line with checksum settings.<\/p>\n<h3 id=\"checksum-validation-for-symbologies-with-obligatory-checksum\"><strong>Checksum Validation for symbologies with Obligatory Checksum<\/strong><\/h3>\n<p>Barcoded types with obligatory checksum controls require performing compulsive checksum validation when <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/global#ChecksumValidation\"><em>ChecksumValidation<\/em><\/a> is initialized using <em>ChecksumValidation.DEFAULT<\/em> or <em>ChecksumValidation.ON<\/em> values. Alternatively, setting the <em>ChecksumValidation.Off<\/em> value turns off checksum verification and in this way, allows decoding data from invalid barcodes. This option increases the probability of incorrect reading outcome.<\/p>\n<p align=\"center\"><img src=\"code11.png\"><\/p> \n<h3 id=\"checksum-validation-for-barcodes-with-optional-checksum\"><strong>Checksum Validation for Barcodes with Optional Checksum<\/strong><\/h3>\n<p><a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/global#ChecksumValidation\"><em>ChecksumValidation<\/em><\/a> allows enabling and disabling checksum controls for barcode standards with optional checksum verification. To request checksum validation, the following setting should be used: <em>ChecksumValidation.ON<\/em>. When other options, <em>ChecksumValidation.DEFAULT<\/em> and <em>ChecksumValidation.OFF<\/em>, are enabled, checksum controls are disabled.<\/p>\n<p align=\"center\"><img src=\"code39.png\"><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to enable and disable ChecksumValidation\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">EAN_13<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;1234567890128&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">EAN_13<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/checksum disabled\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">setChecksumValidation<\/span><span class=\"o\">(<\/span><span class=\"n\">ChecksumValidation<\/span><span class=\"o\">.<\/span><span class=\"na\">OFF<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Value: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getOneD<\/span><span class=\"o\">().<\/span><span class=\"na\">getValue<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Checksum: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getOneD<\/span><span class=\"o\">().<\/span><span class=\"na\">getCheckSum<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">EAN_13<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/checksum enabled\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">setChecksumValidation<\/span><span class=\"o\">(<\/span><span class=\"n\">ChecksumValidation<\/span><span class=\"o\">.<\/span><span class=\"na\">ON<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Value: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getOneD<\/span><span class=\"o\">().<\/span><span class=\"na\">getValue<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Checksum: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getOneD<\/span><span class=\"o\">().<\/span><span class=\"na\">getCheckSum<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"managing-barcodes-with-unicode-encodings\"><strong>Managing Barcodes with Unicode Encodings<\/strong><\/h2>\n<p><em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em> provides class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarcodeSettings\"><em>BarcodeSettings<\/em><\/a> that contains a special method called <em>setDetectEncoding<\/em> that enables the automatic recognition of UTF8 and UTF16 Unicode encodings for 2D symbologies and allows re-encoding barcode information into a string with Unicode characters. If this recognition mode is turned off, barcode information can be scanned and decoded manually based on the desired encoding.<\/p>\n<p align=\"center\"><img src=\"qrdetectencoding.png\"><\/p>\n<h2 id=\"fnc-symbols\"><strong>FNC Symbols<\/strong><\/h2>\n<p>The GS1 association suggests using FNC character to perform decoding of some symbologies, including <em>Code 128<\/em> and <em>Code 128<\/em>. Four types of FNC symbols (FNC1-4) are supported. FNC1 is the most widely used one that is intended for GS1 Application Identifier (AI) marking. When a barcode does not relate to any of GS1 types (e.g. <em>Code 128<\/em> or <em>GS1 Code 128<\/em>), the decoder processes FNC symbols as \u201c&lt;FNC#&gt;\u201d. These symbols can be removed from decoding results passing the <em>False<\/em> value to the <em>setStripFNC<\/em> method.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">GS_1_CODE_128<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;(02)04006664241007(37)1(400)7019590754&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;c:\/test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"n\">BarcodeImageFormat<\/span><span class=\"o\">.<\/span><span class=\"na\">PNG<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;c:\/test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/StripFNC disabled\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"o\">().<\/span><span class=\"na\">setStripFNC<\/span><span class=\"o\">(<\/span><span class=\"kc\">false<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span> <span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"na\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;c:\/test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/StripFNC enabled\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"o\">().<\/span><span class=\"na\">setStripFNC<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span> <span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"na\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"code128fnc.png\"><\/p>\n<h2 id=\"australia-post-barcodes\"><strong>Australia Post Barcodes<\/strong><\/h2>\n<p><em>Australia Post<\/em> is a 4-state postal barcode type implemented by the Australian Post. This type requires including special two-digit format control code (FCC) fields and eight-digit sorting code (SC) fields into barcode information. FCC fields are intended to set one of three supported types with various fixed number of bars: 37, 52, or 67 bars. For some FCC, barcodes may comprise a customer information (CI) field that indicates one of the encoding types supporting numerical or alphanumeric characters. Customer information can take 31 bars in 67-length barcodes or 16 bars in 52-length ones. <em>Australia Post<\/em> has checksum controls and supports Reed-Solomon error correction.<\/p>\n<p>Because of the possible presence of customer information in barcode information for <em>Australia Post<\/em>, the recognition process has some peculiarities. Class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/AustraliaPostSettings\"><em>AustraliaPostSettings<\/em><\/a> is provided to manage recognition parameters according to specific industrial needs.<\/p>\n<h3 id=\"decoding-customer-information-in-standard-formats\"><strong>Decoding Customer Information in Standard Formats<\/strong><\/h3>\n<p>The <em>Australia Post<\/em> standard enables encoding additional customer data in three formats; automatic detection of the used format is not supported. The desired decoding format can be enabled through the <em>setCustomerInformationInterpretingType<\/em> method of <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/global#CustomerInformationInterpretingType\"><em>CustomerInformationInterpretingType<\/em><\/a> global property that can take different values explained in the table below.<\/p>\n<table>\n<thead>\n<tr>\n<th>Australia Post Encoding Table<\/th>\n<th>Supported Symbols<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>CTable<\/td>\n<td>Numerical digits, English letters, space symbol, and #<\/td>\n<\/tr>\n<tr>\n<td>NTable<\/td>\n<td>Numerical digits<\/td>\n<\/tr>\n<tr>\n<td>Other<\/td>\n<td>0, 1, 2, and 3 that correspond to H, A, D, and T states<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>C-Table<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;5912345678ABCde&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">getParameters<\/span><span class=\"o\">().<\/span><span class=\"na\">getBarcode<\/span><span class=\"o\">().<\/span><span class=\"na\">getAustralianPost<\/span><span class=\"o\">().<\/span><span class=\"na\">setAustralianPostEncodingTable<\/span><span class=\"o\">(<\/span><span class=\"n\">CustomerInformationInterpretingType<\/span><span class=\"o\">.<\/span><span class=\"na\">C_TABLE<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">image<\/span> <span class=\"o\">=<\/span> <span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">generateBarCodeImage<\/span><span class=\"o\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"n\">image<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">setCustomerInformationInterpretingType<\/span><span class=\"o\">(<\/span><span class=\"n\">CustomerInformationInterpretingType<\/span><span class=\"o\">.<\/span><span class=\"na\">C_TABLE<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeType<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"australiapostctable.png\"><\/p>\n<p><strong>N-Table<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;59123456781234567&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">getParameters<\/span><span class=\"o\">().<\/span><span class=\"na\">getBarcode<\/span><span class=\"o\">().<\/span><span class=\"na\">getAustralianPost<\/span><span class=\"o\">().<\/span><span class=\"na\">setAustralianPostEncodingTable<\/span><span class=\"o\">(<\/span><span class=\"n\">CustomerInformationInterpretingType<\/span><span class=\"o\">.<\/span><span class=\"na\">N_TABLE<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">image<\/span> <span class=\"o\">=<\/span> <span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">generateBarCodeImage<\/span><span class=\"o\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"n\">image<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">setCustomerInformationInterpretingType<\/span><span class=\"o\">(<\/span><span class=\"n\">CustomerInformationInterpretingType<\/span><span class=\"o\">.<\/span><span class=\"na\">N_TABLE<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeType<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"australiapostntable.png\"><\/p>\n<p><strong>Other<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;59123456780123012301230123&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">getParameters<\/span><span class=\"o\">().<\/span><span class=\"na\">getBarcode<\/span><span class=\"o\">().<\/span><span class=\"na\">getAustralianPost<\/span><span class=\"o\">().<\/span><span class=\"na\">setAustralianPostEncodingTable<\/span><span class=\"o\">(<\/span><span class=\"n\">CustomerInformationInterpretingType<\/span><span class=\"o\">.<\/span><span class=\"na\">OTHER<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">image<\/span> <span class=\"o\">=<\/span> <span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">generateBarCodeImage<\/span><span class=\"o\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"n\">image<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">CustomerInformationInterpretingType<\/span> <span class=\"o\">=<\/span> <span class=\"n\">CustomerInformationInterpretingType<\/span><span class=\"o\">.<\/span><span class=\"na\">OTHER<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeType<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"australiapostother.png\"><\/p>\n<h3 id=\"removal-of-fill-patterns\"><strong>Removal of Fill Patterns<\/strong><\/h3>\n<p>The <em>Australia Post<\/em> type requires setting fixed size for each subtype. When the <em>CTable<\/em> format is enabled, the empty space included in the input message is decoded as \u201cz\u201d. To disable this property, the <em>setIgnoreEndingFillingPatternsForCTable<\/em> method needs to be called.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;5912345678AB&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">getParameters<\/span><span class=\"o\">().<\/span><span class=\"na\">getBarcode<\/span><span class=\"o\">().<\/span><span class=\"na\">getAustralianPost<\/span><span class=\"o\">().<\/span><span class=\"na\">setAustralianPostEncodingTable<\/span><span class=\"o\">(<\/span><span class=\"n\">CustomerInformationInterpretingType<\/span><span class=\"o\">.<\/span><span class=\"na\">C_TABLE<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">image<\/span> <span class=\"o\">=<\/span> <span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">generateBarCodeImage<\/span><span class=\"o\">(<\/span><span class=\"n\">BarcodeImageFormat<\/span><span class=\"o\">.<\/span><span class=\"na\">PNG<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"n\">image<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"o\">().<\/span><span class=\"na\">getAustraliaPost<\/span><span class=\"o\">().<\/span><span class=\"na\">setCustomerInformationInterpretingType<\/span><span class=\"o\">(<\/span><span class=\"n\">CustomerInformationInterpretingType<\/span><span class=\"o\">.<\/span><span class=\"na\">C_TABLE<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"o\">().<\/span><span class=\"na\">getAustraliaPost<\/span><span class=\"o\">().<\/span><span class=\"na\">setIgnoreEndingFillingPatternsForCTable<\/span><span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"na\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeType<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"na\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"australiapostctableignoreending.png\"><\/p>\n\n      "},{"title":"Nodejsjava: Barcode Reading Quality and Speed","link":"https:\/\/docs.aspose.com\/barcode\/nodejsjava\/optimize-barcode-reading\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/barcode\/nodejsjava\/optimize-barcode-reading\/","description":"\n        \n        \n        <p>This documentation part provides a detailed description of various recognition quality settings that can be customized to optimize the accuracy and speed of barcode reading in <em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em>.<\/p>\n<table>\n<thead>\n<tr>\n<th>Article<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=\"https:\/\/docs.aspose.com\/barcode\/barcode\/nodejsjava\/barcode-reading-presets\/\">Barcode Reading Options and Presets<\/a><\/td>\n<td>Gives an overview of available presets and options to optimize barcode reading quality and speed<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/docs.aspose.com\/barcode\/barcode\/nodejsjava\/read-damaged-barcodes\/\">Read Damaged Barcodes<\/a><\/td>\n<td>Describes special quality settings and median filtering options that can be used to improve recognition results in cases of various distortions and peculiarities in barcode images, such as Gaussian noise, white spots, colored barcodes on a colored background, inverted images, visual artifacts, erased bars, severely corrupted QR Codes, industrial DataMatrix barcodes, and others<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n      "},{"title":"Nodejsjava: Read Barcode Properties and Metadata","link":"https:\/\/docs.aspose.com\/barcode\/nodejsjava\/read-barcode-properties\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/barcode\/nodejsjava\/read-barcode-properties\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\n<a href=\"https:\/\/products.aspose.app\/barcode\/recognize\">Read Barcodes Online<\/a>: You can test the quality of <em><strong>Aspose.BarCode<\/strong><\/em> recognition functionality and view the results online.\n<\/div>\n\n<h2 id=\"overview\"><strong>Overview<\/strong><\/h2>\n<p><em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em> not only enables reading information encoded in a barcode but also provides a possibility to analyze its technical properties, including symbology, orientation angle, position, and metadata. This data is stored in objects of class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeResult\"><em>BarCodeResult<\/em><\/a> and can be fetched using special methods described further in this article.<\/p>\n\n\n<div class=\"alert alert-primary\" role=\"alert\">\n\n<em>If you need any clarifications, feel free to reach out to <a href=\"https:\/\/docs.aspose.com\/barcode\/barcode\/nodejsjava\/technical-support\/\">Aspose Technical Support<\/a>: ask your questions at <a href=\"https:\/\/forum.aspose.com\/c\/barcode\/13\">Aspose.Barcode Forum<\/a> or contact <a href=\"https:\/\/helpdesk.aspose.com\/\">Aspose Paid Support Helpdesk<\/a>.<\/em>\n<\/div>\n\n<h2 id=\"barcode-type-and-encoded-data\"><strong>Barcode Type and Encoded Data<\/strong><\/h2>\n<p>To obtain input barcode data and its symbology, <em>getCodeText<\/em> and <em>getCodeType<\/em> methods of class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeResult\"><em>BarCodeResult<\/em><\/a> can be used. The other method called <em>getCodeTypeName<\/em> returns the text name of the barcode type.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to obtain BarCodeResult.\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">Code128<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;12345&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"o\">[<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span> <span class=\"o\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Confidence: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getConfidence<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode ReadingQuality: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getReadingQuality<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Angle: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getRegion<\/span><span class=\"o\">().<\/span><span class=\"na\">getAngle<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"qrcodetext.png\"><\/p> \n<h2 id=\"read-barcode-data-as-byte-stream\"><strong>Read Barcode Data as Byte Stream<\/strong><\/h2>\n<p>It is possible to load barcode data as a byte stream using a special method of class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeResult\"><em>BarCodeResult<\/em><\/a> that is called <em>getCodeBytes<\/em>.<\/p>\n<p align=\"center\"><img src=\"extcodebytes.png\"><\/p>\n<h2 id=\"decode-barcode-text-in-unicode\"><strong>Decode Barcode Text in Unicode<\/strong><\/h2>\n<p>For barcodes in which the barcode data is encoded in a Unicode encoding, the library provides the <em>getCodeText<\/em> method that can be used to enable the required encoding.<\/p>\n<p align=\"center\"><img src=\"extunicodecodetext.png\"><\/p>\n<h2 id=\"quality-check-of-barcode-reading-results\"><strong>Quality Check of Barcode Reading Results<\/strong><\/h2>\n<p>Developers may need to check whether barcode reading outputs are accurate and complete. For this purpose, <em><strong>Aspose.BarCode for Node.js via Java<\/strong><\/em> provides two specific methods of class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeResult\"><em>BarCodeResult<\/em><\/a>: <em>getConfidence<\/em> and <em>getReadingQuality<\/em>.<br>\nDepending of the quality of barcode reading results, the <em>getConfidence<\/em> method returns a instance of the <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/global#BarCodeConfidence\"><em>BarCodeConfidence<\/em><\/a> global property that denotes the recognition confidence level. It contains values <em>STRONG<\/em>, <em>NONE<\/em>, and <em>MODERATE<\/em> that are discussed below. The <em>getReadingQuality<\/em> method returns an estimate of recognition quality corresponding to the confidence level, as explained in the table below.<\/p>\n<table>\n<thead>\n<tr>\n<th>Confidence Level<\/th>\n<th>Quality Value<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><em>NONE<\/em><\/td>\n<td>0<\/td>\n<td>If the confidence level is <em>None<\/em>, it indicates that the barcode is invalid and its information has been read with errors. If required, it is possible to get its symbology and position in the image and decode barcode information partially<\/td>\n<\/tr>\n<tr>\n<td><em>MODERATE<\/em><\/td>\n<td>80<\/td>\n<td>This confidence level may be returned for linear and postal barcode types with weak or absent checksum controls. Furthermore, it is necessary to analyze the result of the <em>getReadingQuality<\/em> method. The absolute correctness of barcode reading results is not assured<\/td>\n<\/tr>\n<tr>\n<td><em>STRONG<\/em><\/td>\n<td>100<\/td>\n<td>This confidence level is returned for all 2D types with Reed-Solomon error correction. It means that barcode text has been recognized accurately<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to set BarCodeConfidence\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/Moderate confidence\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;12345&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"o\">[<\/span><span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span><span class=\"o\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Confidence: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getConfidence<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode ReadingQuality: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getReadingQuality<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/Strong confidence\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">QR<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;12345&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"o\">[<\/span><span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">QR<\/span><span class=\"o\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Confidence: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getConfidence<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode ReadingQuality: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getReadingQuality<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"barcode-position-and-orientation-angle\"><strong>Barcode Position and Orientation Angle<\/strong><\/h2>\n<p>To obtain the position of a source barcode and its orientation angle, methods class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/BarCodeRegionParameters\"><em>BarCodeRegionParameters<\/em><\/a> can be used. This class allows getting the information about the barcode region in the following forms:<\/p>\n<ul>\n<li>Quadrangle \u2013 a quadrangle object that bounds a barcode<\/li>\n<li>Rectangle - a rectangle object that bounds a barcode<\/li>\n<li>Points \u2013 an array of points constituting a barcode<\/li>\n<li>Angle \u2013 an orientation angle in degrees<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to get barcode angle and bounding quadrangle values\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">Code128<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;12345&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"o\">[<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span> <span class=\"o\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Angle: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getRegion<\/span><span class=\"o\">().<\/span><span class=\"na\">getAngle<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Quadrangle: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getRegion<\/span><span class=\"o\">().<\/span><span class=\"na\">getQuadrangle<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"qr_code128.png\" width=\"20%\" height=\"20%\"><\/p>\n<h2 id=\"barcode-metadata\"><strong>Barcode Metadata<\/strong><\/h2>\n<h3 id=\"read-macro-pdf417-and-macro-pdf417-metadata\"><strong>Read Macro PDF417 and Macro PDF417 Metadata<\/strong><\/h3>\n<p>Metadata from <em>PDF417<\/em> barcodes can be obtained using methods of class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/Pdf417ExtendedParameters\"><em>Pdf417ExtendedParameters<\/em><\/a> listed below.<\/p>\n<table>\n<thead>\n<tr>\n<th>PDF417 Metadata Method<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><em>getPdf417MacroFileID<\/em><\/td>\n<td>Gets the unique identifier of a barcode series or a PDF417 file<\/td>\n<\/tr>\n<tr>\n<td><em>getPdf417MacroSegmentID<\/em><\/td>\n<td>Gets the current identifier of a segment<\/td>\n<\/tr>\n<tr>\n<td><em>getPdf417MacroSegmentsCount<\/em><\/td>\n<td>Returns the number of barcodes in a series<\/td>\n<\/tr>\n<tr>\n<td><em>getPdf417MacroFileName<\/em><\/td>\n<td>Returns the name of a file<\/td>\n<\/tr>\n<tr>\n<td><em>getPdf417MacroChecksum<\/em><\/td>\n<td>Gets the checksum value computed using CCITT-16 polynomial<\/td>\n<\/tr>\n<tr>\n<td><em>getPdf417MacroFileSize<\/em><\/td>\n<td>Returs the total size of bytes in a series<\/td>\n<\/tr>\n<tr>\n<td><em>getPdf417MacroTimeStamp<\/em><\/td>\n<td>Returns the time spent to generate\/send the file<\/td>\n<\/tr>\n<tr>\n<td><em>getPdf417MacroAddressee<\/em><\/td>\n<td>Gets the address of the file sender<\/td>\n<\/tr>\n<tr>\n<td><em>getPdf417MacroSender<\/em><\/td>\n<td>Returns the name of the file sender<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to get MacroPdf417 metadata\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">MacroPdf417<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;12345&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">getParameters<\/span><span class=\"o\">().<\/span><span class=\"na\">getBarcode<\/span><span class=\"o\">().<\/span><span class=\"na\">getPdf417<\/span><span class=\"o\">().<\/span><span class=\"na\">setPdf417MacroFileID<\/span><span class=\"o\">(<\/span><span class=\"n\">10<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">getParameters<\/span><span class=\"o\">().<\/span><span class=\"na\">getBarcode<\/span><span class=\"o\">().<\/span><span class=\"na\">getPdf417<\/span><span class=\"o\">().<\/span><span class=\"na\">setPdf417MacroSegmentsCount<\/span><span class=\"o\">(<\/span><span class=\"n\">2<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">getParameters<\/span><span class=\"o\">().<\/span><span class=\"na\">getBarcode<\/span><span class=\"o\">().<\/span><span class=\"na\">getPdf417<\/span><span class=\"o\">().<\/span><span class=\"na\">setPdf417MacroSegmentID<\/span><span class=\"o\">(<\/span><span class=\"n\">1<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">MACRO_PDF_417<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;Macro Pdf417 FileID: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getPdf417<\/span><span class=\"o\">().<\/span><span class=\"na\">getMacroPdf417FileID<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;Macro Pdf417 Segments: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getPdf417<\/span><span class=\"o\">().<\/span><span class=\"na\">getMacroPdf417SegmentsCount<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;Macro Pdf417 SegmentID: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getPdf417<\/span><span class=\"o\">().<\/span><span class=\"na\">getMacroPdf417SegmentID<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"extpdf417meta.png\"><\/p>  \n<h3 id=\"read-barcode-metadata-from-qr-codes-with-structured-append\"><strong>Read Barcode Metadata from QR Codes with Structured Append<\/strong><\/h3>\n<p>To fetch metadata from <em>QR Code<\/em> barcodes with structured append, the barcode library provides the <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/QRExtendedParameters\"><em>QRExtendedParameters<\/em><\/a> class. Methods of this class enable reading the information from structured append that is used to combine several <em>QR Code<\/em> barcode into one. This data can be obtained using the following methods:<\/p>\n<ul>\n<li><em>getQRStructuredAppendModeBarCodeIndex<\/em> - returns the sequence number of the current barcode (starting from 0)<\/li>\n<li><em>getQRStructuredAppendModeBarCodesQuantity<\/em> - returns the number of barcodes in a composite <em>QR Code<\/em> barcode taht can take values from 2 to 16<\/li>\n<li><em>getQRStructuredAppendModeParityData<\/em> - returns the checksum identifier byte that is usually computed as <em>XOR<\/em> of all bytes in which UTF16BE characters are encoded in two bytes<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to get QR Structured Append data\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">QR<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;QR Structured Append Quantity: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getQR<\/span><span class=\"o\">().<\/span><span class=\"na\">getQRStructuredAppendModeBarCodesQuantity<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;QR Structured Append Index: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getQR<\/span><span class=\"o\">().<\/span><span class=\"na\">getQRStructuredAppendModeBarCodeIndex<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;QR Structured Append ParityData: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getQR<\/span><span class=\"o\">().<\/span><span class=\"na\">getQRStructuredAppendModeParityData<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"extqrmeta.png\"><\/p>\n<h3 id=\"read-barcode-metadata-from-databar-with-2d-components\"><strong>Read Barcode Metadata from DataBar with 2D Components<\/strong><\/h3>\n<p>Metadata from <em>DataBar<\/em> barcodes with 2D components can be obtained using class called <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/DataBarExtendedParameters\"><em>DataBarExtendedParameters<\/em><\/a> that provides a special method called <em>is2DCompositeComponent<\/em>. This methods allows enabling or disabling a 2D component in <em>DataBar<\/em> barcodes.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;c:\\\\test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">DATABAR_OMNI_DIRECTIONAL<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;QR Structured Append Quantity: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getQR<\/span><span class=\"o\">().<\/span><span class=\"na\">getQRStructuredAppendModeBarCodesQuantity<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"extdatabarmeta.png\"><\/p>\n<h3 id=\"read-metadata-from-1d-barcodes\"><strong>Read Metadata from 1D Barcodes<\/strong><\/h3>\n<p>Some 1D barcode types, i.e. <em>EAN-13<\/em>, allow separating barcode input information itself from the checksum value. To do this, class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/OneDExtendedParameters\"><em>OneDExtendedParameters<\/em><\/a> provides the <em>getValue<\/em> method that allows getting 1D barcode text and the <em>getCheckSum<\/em> method that returns the result of checksum computation.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to get 1D barcode value and checksum\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">EAN_13<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;1234567890128&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">EAN_13<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Value: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getOneD<\/span><span class=\"o\">().<\/span><span class=\"na\">getValue<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Checksum: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getOneD<\/span><span class=\"o\">().<\/span><span class=\"na\">getCheckSum<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"ean13.png\"><\/p>\n<h3 id=\"get-raw-data-from-code-128-barcodes\"><strong>Get Raw Data from Code 128 Barcodes<\/strong><\/h3>\n<p>Input data stored in <em>Code 128<\/em> barcodes can be encoded in three ways: A, B, or C. Class <a href=\"https:\/\/reference.aspose.com\/barcode\/nodejs\/Code128ExtendedParameters\"><em>Code128ExtendedParameters<\/em><\/a> provides the <em>getCode128DataPortions<\/em> method that returns decoded parts of barcode input information and the encoding mode.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/This sample shows how to get Code128 raw values\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">let<\/span> <span class=\"n\">generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarcodeGenerator<\/span><span class=\"o\">(<\/span><span class=\"n\">EncodeTypes<\/span><span class=\"o\">.<\/span><span class=\"na\">Code128<\/span><span class=\"o\">,<\/span> <span class=\"s\">&#34;12345&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">generator<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">let<\/span> <span class=\"n\">reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">BarCodeReader<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.png&#34;<\/span><span class=\"o\">,<\/span> <span class=\"kc\">null<\/span><span class=\"o\">,<\/span>  <span class=\"n\">DecodeType<\/span><span class=\"o\">.<\/span><span class=\"na\">CODE_128<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">reader<\/span><span class=\"o\">.<\/span><span class=\"na\">readBarCodes<\/span><span class=\"o\">().<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">function<\/span><span class=\"o\">(<\/span><span class=\"n\">result<\/span><span class=\"o\">,<\/span> <span class=\"n\">i<\/span><span class=\"o\">,<\/span> <span class=\"n\">results<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode Type: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getCodeText<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">console<\/span><span class=\"o\">.<\/span><span class=\"na\">log<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;Code128 Data Portions: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"na\">getExtended<\/span><span class=\"o\">().<\/span><span class=\"na\">getCode128<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"code128.png\"><\/p>\n\n      "}]}}