{"@attributes":{"version":"2.0"},"channel":{"title":"Documentation \u2013 Barcode Recognition","link":"https:\/\/docs.aspose.com\/barcode\/phpjava\/barcode-recognition\/","description":"Recent content in Barcode Recognition on Documentation","generator":"Hugo -- gohugo.io","item":[{"title":"Phpjava: Barcode Reading Basics","link":"https:\/\/docs.aspose.com\/barcode\/phpjava\/barcode-reading-basics\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/barcode\/phpjava\/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\/php\/classBarCodeReader\"><em>BarCodeReader<\/em><\/a> in <em><strong>Aspose.BarCode for PHP via Java<\/strong><\/em> is the most important to implement barcode recognition for more than 60 barcode types. First, it is necessary to identify a barcode source that can be represented as a file or a bitmap object. After that, target barcode types need to be specified using values from the <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classDecodeType\"><em>DecodeType<\/em><\/a> class. By default, the library uses the <em>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 takes much more time. Developers can set explicitly not only the desired barcode types 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\/php\/classRectangle\/\"><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\/phpjava\/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-barcode-reading-parameters\"><strong>Main Barcode Reading Parameters<\/strong><\/h2>\n<p>In <em><strong>Aspose.BarCode for PHP via Java<\/strong><\/em>, barcode reading is performed according to the following steps:<\/p>\n<ul>\n<li>Determine the barcode source (image file, 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\/php\/classDecodeType\"><em>DecodeType<\/em><\/a> is set to <em>ALL_SUPPORTED_TYPES<\/em> by default meaning that the sources image will be scanned to search for all supported barcode types; in this case, the time required to finish the barcode detection process will increase.<\/li>\n<\/ul>\n<p>The barcode library contains the <em>readBarCodes<\/em> function of class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeReader\"><em>BarCodeReader<\/em><\/a> that returns the result of barcode reading in an array of the <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeResult\"><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-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">This<\/span> <span class=\"nx\">sample<\/span> <span class=\"nx\">shows<\/span> <span class=\"nx\">how<\/span> <span class=\"nx\">to<\/span> <span class=\"nx\">read<\/span> <span class=\"nx\">barcodes<\/span> <span class=\"nx\">with<\/span> <span class=\"nx\">BarCodeReader<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"nv\">$i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getFoundCount<\/span><span class=\"p\">()<\/span> <span class=\"o\">&gt;<\/span> <span class=\"nv\">$i<\/span><span class=\"p\">;<\/span> <span class=\"o\">++<\/span><span class=\"nv\">$i<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getFoundBarCodes<\/span><span class=\"p\">()[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"o\">@<\/span><span class=\"k\">return<\/span> <span class=\"k\">array<\/span> <span class=\"nx\">of<\/span> <span class=\"nx\">recognized<\/span> <span class=\"p\">{<\/span><span class=\"o\">@<\/span><span class=\"nx\">code<\/span> <span class=\"nx\">BarCodeResult<\/span><span class=\"p\">}<\/span><span class=\"nx\">s<\/span> <span class=\"nx\">on<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">image<\/span><span class=\"o\">.<\/span> <span class=\"k\">If<\/span> <span class=\"nx\">nothing<\/span> <span class=\"nx\">is<\/span> <span class=\"nx\">recognized<\/span><span class=\"p\">,<\/span> <span class=\"nx\">zero<\/span> <span class=\"k\">array<\/span> <span class=\"nx\">is<\/span> <span class=\"nx\">returned<\/span><span class=\"o\">.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"o\">@<\/span><span class=\"nx\">throws<\/span> <span class=\"nx\">BarcodeException<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"o\">@<\/span><span class=\"nx\">throws<\/span> <span class=\"nx\">RecognitionAbortedException<\/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=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"nf\">readBarCodes<\/span><span class=\"p\">()<\/span><span class=\"o\">:<\/span> <span class=\"k\">array<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">try<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">recognizedResults<\/span> <span class=\"o\">=<\/span> <span class=\"k\">array<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"nv\">$javaReadBarcodes<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">java_values<\/span><span class=\"p\">(<\/span><span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getJavaClass<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"nv\">$i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"nv\">$i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"nx\">sizeof<\/span><span class=\"p\">(<\/span><span class=\"nv\">$javaReadBarcodes<\/span><span class=\"p\">);<\/span> <span class=\"nv\">$i<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">recognizedResults<\/span><span class=\"p\">[<\/span><span class=\"nv\">$i<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeResult<\/span><span class=\"p\">(<\/span><span class=\"nv\">$javaReadBarcodes<\/span><span class=\"p\">[<\/span><span class=\"nv\">$i<\/span><span class=\"p\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">return<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">recognizedResults<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">catch<\/span> <span class=\"p\">(<\/span><span class=\"nx\">Exception<\/span> <span class=\"nv\">$e<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">strpos<\/span><span class=\"p\">(<\/span><span class=\"nv\">$e<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getMessage<\/span><span class=\"p\">(),<\/span> <span class=\"s2\">&#34;RecognitionAbortedException&#34;<\/span><span class=\"p\">))<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">RecognitionAbortedException<\/span><span class=\"p\">(<\/span><span class=\"nv\">$e<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getMessage<\/span><span class=\"p\">(),<\/span> <span class=\"k\">null<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">throw<\/span> <span class=\"nv\">$e<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"get-recognition-results\"><strong>Get Recognition Results<\/strong><\/h2>\n<p>To load barcode reading outputs, it is needed to call the <em>ReadBarCodes<\/em> function that provides a <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeResult\"><em>BarCodeResult<\/em><\/a> array. The current reading result can be accessed using the <em>getFoundBarCodes<\/em> function that obtains decoding results or the <em>getFoundCount<\/em> function that returns the number of detected barcodes.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"nv\">$i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getFoundCount<\/span><span class=\"p\">()<\/span> <span class=\"o\">&gt;<\/span> <span class=\"nv\">$i<\/span><span class=\"p\">;<\/span> <span class=\"o\">++<\/span><span class=\"nv\">$i<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span> <span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getFoundBarCodes<\/span><span class=\"p\">()[<\/span><span class=\"nv\">$i<\/span><span class=\"p\">]<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"nv\">$i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getFoundCount<\/span><span class=\"p\">()<\/span> <span class=\"o\">&gt;<\/span> <span class=\"nv\">$i<\/span><span class=\"p\">;<\/span> <span class=\"o\">++<\/span><span class=\"nv\">$i<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getFoundBarCodes<\/span><span class=\"p\">()[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"set-barcode-recognition-source\"><strong>Set Barcode Recognition Source<\/strong><\/h2>\n<p>In <em><strong>Aspose.BarCode for PHP via Java<\/strong><\/em>, there are three ways to set the barcode recognition source: from an image file or from a bitmap. 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> function can be used to pass the path to the existing object of class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeReader\"><em>BarCodeReader<\/em><\/a>.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setBarCodeReadType<\/span><span class=\"p\">(<\/span><span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setBarCodeImage<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"read-barcodes-from-bitmap-objects\"><strong>Read Barcodes from Bitmap Objects<\/strong><\/h3>\n<p>In <em><strong>Aspose.BarCode for PHP 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> function.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$bmp<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setBarCodeReadType<\/span><span class=\"p\">(<\/span><span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$width<\/span><span class=\"p\">,<\/span> <span class=\"nv\">$height<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">list<\/span><span class=\"p\">(<\/span><span class=\"nv\">$width<\/span><span class=\"p\">,<\/span> <span class=\"nv\">$height<\/span><span class=\"p\">)<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">getimagesize<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;path_to_image&#39;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setBarCodeImage<\/span><span class=\"p\">(<\/span><span class=\"nv\">$bmp<\/span><span class=\"p\">,<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">Rectangle<\/span><span class=\"p\">[]<\/span> <span class=\"p\">{<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">Rectangle<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"nv\">$width<\/span><span class=\"p\">,<\/span> <span class=\"nv\">$height<\/span><span class=\"p\">)<\/span> <span class=\"p\">});<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"set-target-barcode-types\"><strong>Set Target Barcode Types<\/strong><\/h2>\n<p><em><strong>Aspose.BarCode for PHP 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. Otheriwise, the <em>ALL_SUPPORTED_TYPES<\/em> setting of the <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classDecodeType\"><em>DecodeType<\/em><\/a> class 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=\"list-target-barcode-types-in-decodetype\"><strong>List 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> function.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setBarCodeReadType<\/span><span class=\"p\">(<\/span><span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setBarCodeImage<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"using-predefined-sets-for-barcode-types\"><strong>Using Predefined Sets for Barcode Types<\/strong><\/h3>\n<p>Class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classDecodeType\"><em>DecodeType<\/em><\/a> provides the following barcode type presets 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 the most widespread barcode types defined according to Aspose recommendations<\/li>\n<\/ul>\n<p>The required preset can be specified in the <em>BarCodeReader<\/em> constructor or passed to the <em>setBarCodeReadType<\/em> function.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">TYPES_1D<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"setting-target-barcode-regions\"><strong>Setting Target Barcode Regions<\/strong><\/h2>\n<p>Target areas for barcode detection can be determined by creating one or several objects of <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classRectangle\/\"><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 applies 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 the <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classRectangle\/\"><em>Rectangle<\/em><\/a> type and then pass it to the <em>BarCodeReader<\/em> constructor or the <em>setBarCodeImage<\/em> function.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$bmp<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setBarCodeReadType<\/span><span class=\"p\">(<\/span><span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$width<\/span><span class=\"p\">,<\/span> <span class=\"nv\">$height<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">list<\/span><span class=\"p\">(<\/span><span class=\"nv\">$width<\/span><span class=\"p\">,<\/span> <span class=\"nv\">$height<\/span><span class=\"p\">)<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">getimagesize<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;path_to_image&#39;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setBarCodeImage<\/span><span class=\"p\">(<\/span><span class=\"nv\">$bmp<\/span><span class=\"p\">,<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">Rectangle<\/span><span class=\"p\">[]<\/span> <span class=\"p\">{<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">Rectangle<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"nv\">$width<\/span><span class=\"p\">,<\/span> <span class=\"nv\">$height<\/span><span class=\"p\">)<\/span> <span class=\"p\">});<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><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 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> function.<\/p>\n<h2 id=\"interrupt-barcode-reading-using-manual-and-timeout-methods\"><strong>Interrupt Barcode Reading Using Manual and Timeout Methods<\/strong><\/h2>\n<p>Class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeReader\"><em>BarCodeReader<\/em><\/a> has two special functions to interrupt the barcode reading process if it becomes unfeasible to complete. The first one is the <em>setTimeOut<\/em> function that can be called to interrupt the barcode reading process immediately after the timeout value gets exceeded. By default, the <em>TimeOut<\/em> value is set to 0.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setTimeout<\/span><span class=\"p\">(<\/span><span class=\"mi\">5000<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>The second way is to use the <em>abort()<\/em> function. This option is used if the recognition process has been launched in the other thread. This function does not stop the entire process and returns controls immediately.<\/p>\n<p>Both aforementioned functions throw an exception called <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classRecognitionAbortedException\"><em>RecognitionAbortedException<\/em><\/a> if the recognition process could not be finished successfully.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\">   <span class=\"k\">This<\/span> <span class=\"nx\">sample<\/span> <span class=\"nx\">shows<\/span> <span class=\"nx\">how<\/span> <span class=\"nx\">to<\/span> <span class=\"nx\">read<\/span> <span class=\"nx\">barcodes<\/span> <span class=\"nx\">with<\/span> <span class=\"nx\">BarCodeReader<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"nv\">$i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getFoundCount<\/span><span class=\"p\">()<\/span> <span class=\"o\">&gt;<\/span> <span class=\"nv\">$i<\/span><span class=\"p\">;<\/span> <span class=\"o\">++<\/span><span class=\"nv\">$i<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getFoundBarCodes<\/span><span class=\"p\">()[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"o\">@<\/span><span class=\"k\">return<\/span> <span class=\"k\">array<\/span> <span class=\"nx\">of<\/span> <span class=\"nx\">recognized<\/span> <span class=\"p\">{<\/span><span class=\"o\">@<\/span><span class=\"nx\">code<\/span> <span class=\"nx\">BarCodeResult<\/span><span class=\"p\">}<\/span><span class=\"nx\">s<\/span> <span class=\"nx\">on<\/span> <span class=\"nx\">the<\/span> <span class=\"nx\">image<\/span><span class=\"o\">.<\/span> <span class=\"k\">If<\/span> <span class=\"nx\">nothing<\/span> <span class=\"nx\">is<\/span> <span class=\"nx\">recognized<\/span><span class=\"p\">,<\/span> <span class=\"nx\">zero<\/span> <span class=\"k\">array<\/span> <span class=\"nx\">is<\/span> <span class=\"nx\">returned<\/span><span class=\"o\">.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"o\">@<\/span><span class=\"nx\">throws<\/span> <span class=\"nx\">BarcodeException<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"o\">@<\/span><span class=\"nx\">throws<\/span> <span class=\"nx\">RecognitionAbortedException<\/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=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"nf\">readBarCodes<\/span><span class=\"p\">()<\/span><span class=\"o\">:<\/span> <span class=\"k\">array<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">try<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">recognizedResults<\/span> <span class=\"o\">=<\/span> <span class=\"k\">array<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"nv\">$javaReadBarcodes<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">java_values<\/span><span class=\"p\">(<\/span><span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getJavaClass<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"nv\">$i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"nv\">$i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"nx\">sizeof<\/span><span class=\"p\">(<\/span><span class=\"nv\">$javaReadBarcodes<\/span><span class=\"p\">);<\/span> <span class=\"nv\">$i<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">recognizedResults<\/span><span class=\"p\">[<\/span><span class=\"nv\">$i<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeResult<\/span><span class=\"p\">(<\/span><span class=\"nv\">$javaReadBarcodes<\/span><span class=\"p\">[<\/span><span class=\"nv\">$i<\/span><span class=\"p\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">return<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">recognizedResults<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">catch<\/span> <span class=\"p\">(<\/span><span class=\"nx\">Exception<\/span> <span class=\"nv\">$e<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">strpos<\/span><span class=\"p\">(<\/span><span class=\"nv\">$e<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getMessage<\/span><span class=\"p\">(),<\/span> <span class=\"s2\">&#34;RecognitionAbortedException&#34;<\/span><span class=\"p\">))<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">RecognitionAbortedException<\/span><span class=\"p\">(<\/span><span class=\"nv\">$e<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getMessage<\/span><span class=\"p\">(),<\/span> <span class=\"k\">null<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">throw<\/span> <span class=\"nv\">$e<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div>\n      "},{"title":"Phpjava: Barcode Reading Settings","link":"https:\/\/docs.aspose.com\/barcode\/phpjava\/barcode-reading-settings\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/barcode\/phpjava\/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 reading process implemented in <em><strong>Aspose.BarCode for PHP via Java<\/strong><\/em>, 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 led to the presence of incompatible decoding formats. To resolve possible conflicts, class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeReader\"><em>BarCodeReader<\/em><\/a> provides a special class called <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarcodeSettings\"><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\/phpjava\/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-controls\"><strong>Checksum Controls<\/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\/php\/classBarcodeSettings\"><em>BarcodeSettings<\/em><\/a> contains the <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classChecksumValidation\"><em>ChecksumValidation<\/em><\/a> class. 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\/php\/classChecksumValidation\"><em>ChecksumValidation<\/em><\/a> class suggests different options for these two groups. The barcode reading procedure varies in line with checksum settings.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">EAN_13<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;1234567890128&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">save<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;c:\/test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">BarcodeImageFormat<\/span><span class=\"o\">::<\/span><span class=\"na\">PNG<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;c:\/test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">EAN_13<\/span><span class=\"p\">);<\/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=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setChecksumValidation<\/span><span class=\"p\">(<\/span><span class=\"nx\">ChecksumValidation<\/span><span class=\"o\">::<\/span><span class=\"na\">OFF<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">     <span class=\"k\">echo<\/span> <span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">     <span class=\"k\">echo<\/span> <span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Value: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">result<\/span><span class=\"o\">.<\/span><span class=\"nx\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"nx\">getOneD<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"nx\">getValue<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">     <span class=\"k\">echo<\/span> <span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Checksum: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">result<\/span><span class=\"o\">.<\/span><span class=\"nx\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"nx\">getOneD<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"nx\">getCheckSum<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"o\">@<\/span><span class=\"s2\">&#34;c:<\/span><span class=\"se\">\\t<\/span><span class=\"s2\">est.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">EAN_13<\/span><span class=\"p\">);<\/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=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setChecksumValidation<\/span><span class=\"p\">(<\/span><span class=\"nx\">ChecksumValidation<\/span><span class=\"o\">::<\/span><span class=\"na\">ON<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">     <span class=\"k\">echo<\/span> <span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">result<\/span><span class=\"o\">.<\/span><span class=\"nx\">CodeText<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">     <span class=\"k\">echo<\/span> <span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Value: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">result<\/span><span class=\"o\">.<\/span><span class=\"nx\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"nx\">getOneD<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"nx\">getValue<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">     <span class=\"k\">echo<\/span> <span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Checksum: &#34;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">result<\/span><span class=\"o\">.<\/span><span class=\"nx\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"nx\">getOneD<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"nx\">getCheckSum<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"checksum-validation-for-barcodes-with-obligatory-checksum\"><strong>Checksum Validation for Barcodes 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\/php\/classChecksumValidation\"><em>ChecksumValidation<\/em><\/a> is initialized using <em>DEFAULT<\/em> or <em>ON<\/em> values. Alternatively, setting the <em>OFF<\/em> value turns off checksum verification and in this way, allows decoding information from invalid barcodes. This option increases the probability of incorrect recognition.<\/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\/php\/classChecksumValidation\"><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 enabled: <em>ON<\/em>. When other options, <em>DEFAULT<\/em> and <em>OFF<\/em>, are used, checksum controls are disabled.<\/p>\n<p align=\"center\"><img src=\"code39.png\"><\/p>\n<h2 id=\"managing-barcodes-with-unicode-encodings\"><strong>Managing Barcodes with Unicode Encodings<\/strong><\/h2>\n<p><em><strong>Aspose.BarCode for PHP via Java<\/strong><\/em> provides class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarcodeSettings\"><em>BarcodeSettings<\/em><\/a>. It includes the <em>setDetectEncoding<\/em> function that enables the automatic reading of UTF8 and UTF16 Unicode encodings for 2D types and allows re-encoding barcode information in a string with Unicode characters. If this reading 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<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">QR<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;\u0421\u043b\u043e\u0432\u043e&#34;<\/span><span class=\"p\">))<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$im<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">generateBarcodeImage<\/span><span class=\"p\">(<\/span><span class=\"nx\">BarcodeImageFormat<\/span><span class=\"o\">::<\/span><span class=\"na\">PNG<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/encoding detection for Unicode encodings is enabled\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"nv\">$im<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">QR<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setDetectEncoding<\/span><span class=\"p\">(<\/span><span class=\"k\">true<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">echo<\/span> <span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/encoding detection is disabled\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"nv\">$im<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">QR<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setDetectEncoding<\/span><span class=\"p\">(<\/span><span class=\"k\">false<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">echo<\/span> <span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"fnc-symbols\"><strong>FNC Symbols<\/strong><\/h2>\n<p>The GS1 association suggests using FNC character to perform decoding of some barcodes, 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 (for example, <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> function.<\/p>\n<p align=\"center\"><img src=\"code128fnc.png\"><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">GS_1_CODE_128<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;(02)04006664241007(37)1(400)7019590754&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">save<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;c:\/test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">BarcodeImageFormat<\/span><span class=\"o\">::<\/span><span class=\"na\">PNG<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;c:\/test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/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=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setStripFNC<\/span><span class=\"p\">(<\/span><span class=\"k\">false<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">echo<\/span> <span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;c:\/test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/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=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setStripFNC<\/span><span class=\"p\">(<\/span><span class=\"k\">true<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">echo<\/span> <span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"read-australia-post-barcodes\"><strong>Read 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 numbers 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. The <em>Australia Post<\/em> symbology 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 reading process has some peculiarities. Class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classAustraliaPostSettings\"><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> function of class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classAustraliaPostSettings\"><em>AustraliaPostSettings<\/em><\/a> using the properties of class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classCustomerInformationInterpretingType\"><em>CustomerInformationInterpretingType<\/em><\/a> shown 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>CTable<\/strong><\/p>\n<p align=\"center\"><img src=\"australiapostctable.png\"><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;5912345678ABCde&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getParameters<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcode<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getAustralianPost<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setAustralianPostEncodingTable<\/span><span class=\"p\">(<\/span><span class=\"nx\">CustomerInformationInterpretingType<\/span><span class=\"o\">::<\/span><span class=\"na\">C_TABLE<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$image<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">generateBarcodeImage<\/span><span class=\"p\">(<\/span><span class=\"nx\">BarcodeImageFormat<\/span><span class=\"o\">::<\/span><span class=\"na\">PNG<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"nv\">$image<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setCustomerInformationInterpretingType<\/span><span class=\"p\">(<\/span><span class=\"nx\">CustomerInformationInterpretingType<\/span><span class=\"o\">::<\/span><span class=\"na\">C_TABLE<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeType<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p><strong>NTable<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;59123456781234567&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getParameters<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcode<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getAustralianPost<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setAustralianPostEncodingTable<\/span><span class=\"p\">(<\/span><span class=\"nx\">CustomerInformationInterpretingType<\/span><span class=\"o\">::<\/span><span class=\"na\">N_TABLE<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$image<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">generateBarcodeImage<\/span><span class=\"p\">(<\/span><span class=\"nx\">BarcodeImageFormat<\/span><span class=\"o\">::<\/span><span class=\"na\">PNG<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"nv\">$image<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setCustomerInformationInterpretingType<\/span><span class=\"p\">(<\/span><span class=\"nx\">CustomerInformationInterpretingType<\/span><span class=\"o\">::<\/span><span class=\"na\">N_TABLE<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeType<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/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-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;59123456780123012301230123&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getParameters<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcode<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getAustralianPost<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setAustralianPostEncodingTable<\/span><span class=\"p\">(<\/span><span class=\"nx\">CustomerInformationInterpretingType<\/span><span class=\"o\">::<\/span><span class=\"na\">OTHER<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$image<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">generateBarcodeImage<\/span><span class=\"p\">(<\/span><span class=\"nx\">BarcodeImageFormat<\/span><span class=\"o\">::<\/span><span class=\"na\">PNG<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"nv\">$image<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setCustomerInformationInterpretingType<\/span><span class=\"p\">(<\/span><span class=\"nx\">CustomerInformationInterpretingType<\/span><span class=\"o\">::<\/span><span class=\"na\">OTHER<\/span><span class=\"p\">));<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeType<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p align=\"center\"><img src=\"australiapostother.png\"><\/p>\n<h3 id=\"removal-of-filling-patterns\"><strong>Removal of Filling Patterns<\/strong><\/h3>\n<p>The <em>Australia Post<\/em> type requires setting a 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> function needs to be called.<\/p>\n<p align=\"center\"><img src=\"australiapostctableignoreending.png\"><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;5912345678AB&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getParameters<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcode<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getAustralianPost<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setAustralianPostEncodingTable<\/span><span class=\"p\">(<\/span><span class=\"nx\">CustomerInformationInterpretingType<\/span><span class=\"o\">::<\/span><span class=\"na\">C_TABLE<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$image<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">generateBarCodeImage<\/span><span class=\"p\">(<\/span><span class=\"nx\">BarcodeImageFormat<\/span><span class=\"o\">::<\/span><span class=\"na\">PNG<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"nv\">$image<\/span><span class=\"p\">,<\/span> <span class=\"k\">null<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">AUSTRALIA_POST<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getAustraliaPost<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setCustomerInformationInterpretingType<\/span><span class=\"p\">(<\/span><span class=\"nx\">CustomerInformationInterpretingType<\/span><span class=\"o\">::<\/span><span class=\"na\">C_TABLE<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcodeSettings<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getAustraliaPost<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setIgnoreEndingFillingPatternsForCTable<\/span><span class=\"p\">(<\/span><span class=\"k\">true<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">echo<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeType<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">echo<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div>\n      "},{"title":"Phpjava: Barcode Reading Quality and Speed","link":"https:\/\/docs.aspose.com\/barcode\/phpjava\/optimize-barcode-reading\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/barcode\/phpjava\/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 PHP 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\/phpjava\/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\/phpjava\/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":"Phpjava: Read Barcode Properties and Metadata","link":"https:\/\/docs.aspose.com\/barcode\/phpjava\/read-barcode-properties\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/barcode\/phpjava\/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> barcode 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 PHP via Java<\/strong><\/em> not only enables reading information encoded in a barcode but also provides the 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\/php\/classBarCodeResult\"><em>BarCodeResult<\/em><\/a> and can be fetched using special functions 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\/phpjava\/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 type, <em>getCodeText<\/em> and <em>getCodeType<\/em> functions of class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeResult\"><em>BarCodeResult<\/em><\/a> can be used. The other function 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-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">Code128<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;12345&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">save<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/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 the <em>getCodeBytes<\/em> function of class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeResult\"><em>BarCodeResult<\/em><\/a>.<\/p>\n<p align=\"center\"><img src=\"extcodebytes.png\"><\/p>\n<h2 id=\"verify-quality-of-reading-results\"><strong>Verify Quality of 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 PHP via Java<\/strong><\/em> provides two specific functions of class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeResult\"><em>BarCodeResult<\/em><\/a>: <em>getConfidence<\/em> and <em>getReadingQuality<\/em>.<br>\nDepending on the quality of barcode reading results, the <em>getConfidence<\/em> function returns an instance of the <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeConfidence\"><em>BarCodeConfidence<\/em><\/a> class that denotes the recognition confidence level. This class contains values <em>STRONG<\/em>, <em>NONE<\/em>, and <em>MODERATE<\/em> that are discussed below. The <em>getReadingQuality<\/em> function 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> function. 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-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">Code128<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;12345&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">save<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Confidence: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getConfidence<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode ReadingQuality: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getReadingQuality<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/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, functions of class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classBarCodeRegionParameters\"><em>BarCodeRegionParameters<\/em><\/a> can be used. This class allows getting 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<p align=\"center\"><img src=\"qr_code128.png\" width=\"20%\" height=\"20%\"><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">Code128<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;12345&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">save<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_39_STANDARD<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Angle: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getRegion<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getAngle<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><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 special functions of class <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classPdf417ExtendedParameters\"><em>Pdf417ExtendedParameters<\/em><\/a> listed below.<\/p>\n<table>\n<thead>\n<tr>\n<th>PDF417 Metadata Function<\/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<p align=\"center\"><img src=\"extpdf417meta.png\"><\/p>  \n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">MacroPdf417<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;12345&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getParameters<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcode<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getPdf417<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setPdf417MacroFileID<\/span><span class=\"p\">(<\/span><span class=\"mi\">10<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getParameters<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcode<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getPdf417<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setPdf417MacroSegmentsCount<\/span><span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getParameters<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getBarcode<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getPdf417<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">setPdf417MacroSegmentID<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">save<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">MACRO_PDF_417<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;Macro Pdf417 FileID: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getPdf417<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getMacroPdf417FileID<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;Macro Pdf417 Segments: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getPdf417<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getMacroPdf417SegmentsCount<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;Macro Pdf417 SegmentID: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getPdf417<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getMacroPdf417SegmentID<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><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\/php\/classQRExtendedParameters\"><em>QRExtendedParameters<\/em><\/a> class. It enables reading the information from structured append that is used to combine several QR codes into one. This data can be obtained using the following functions:<\/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>, which 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<p align=\"center\"><img src=\"extqrmeta.png\"><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">QR<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;QR Structured Append Quantity: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getQR<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getQRStructuredAppendModeBarCodesQuantity<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;QR Structured Append Index: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getQR<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getQRStructuredAppendModeBarCodeIndex<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;QR Structured Append ParityData: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getQR<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getQRStructuredAppendModeParityData<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><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  <a href=\"https:\/\/reference.aspose.com\/barcode\/php\/classDataBarExtendedParameters\"><em>DataBarExtendedParameters<\/em><\/a> that provides the <em>is2DCompositeComponent<\/em> function. It allows enabling or disabling a 2D component in <em>DataBar<\/em> barcodes.<\/p>\n<p align=\"center\"><img src=\"extdatabarmeta.png\"><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">DATABAR_OMNI_DIRECTIONAL<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nx\">result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nx\">result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;QR Structured Append Quantity: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nx\">result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getQR<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getQRStructuredAppendModeBarCodesQuantity<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><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\/php\/classOneDExtendedParameters\"><em>OneDExtendedParameters<\/em><\/a> provides the <em>getValue<\/em> function, which allows getting 1D barcode text and the <em>getCheckSum<\/em> function that returns the result of checksum computation.<\/p>\n<p align=\"center\"><img src=\"ean13.png\"><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">EAN_13<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;1234567890128&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">save<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">EAN_13<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Value: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getOneD<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getValue<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Checksum: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getOneD<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCheckSum<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><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\/php\/classCode128ExtendedParameters\"><em>Code128ExtendedParameters<\/em><\/a> provides the <em>getCode128DataPortions<\/em> function that returns decoded parts of barcode input information and the encoding mode.<\/p>\n<p align=\"center\"><img src=\"code128.png\"><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarcodeGenerator<\/span><span class=\"p\">(<\/span><span class=\"nx\">EncodeTypes<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;12345&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$generator<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">save<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$reader<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">BarCodeReader<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">DecodeType<\/span><span class=\"o\">::<\/span><span class=\"na\">CODE_128<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">foreach<\/span><span class=\"p\">(<\/span><span class=\"nv\">$reader<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">readBarCodes<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode Type: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeTypeName<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BarCode CodeText: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCodeText<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;Code128 Data Portions: &#34;<\/span><span class=\"o\">.<\/span><span class=\"nv\">$result<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getExtended<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">getCode128<\/span><span class=\"p\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div>\n      "}]}}