Mike42\Escpos\CapabilityProfile::getSupportsBarcodeB PHP Method

getSupportsBarcodeB() public method

public getSupportsBarcodeB ( ) : boolean
return boolean True if Barcode B command is supported, false otherwise
    public function getSupportsBarcodeB()
    {
        return $this->getFeature('barcodeB') === true;
    }

Usage Example

Example #1
0
 /**
  * Print a barcode.
  *
  * @param string $content The information to encode.
  * @param int $type The barcode standard to output. Supported values are
  * `Printer::BARCODE_UPCA`, `Printer::BARCODE_UPCE`, `Printer::BARCODE_JAN13`,
  * `Printer::BARCODE_JAN8`, `Printer::BARCODE_CODE39`, `Printer::BARCODE_ITF`,
  * `Printer::BARCODE_CODABAR`, `Printer::BARCODE_CODE93`, and `Printer::BARCODE_CODE128`.
  * If not specified, `Printer::BARCODE_CODE39` will be used. Note that some
  * barcode formats only support specific lengths or sets of characters, and that
  * available barcode types vary between printers.
  * @throws InvalidArgumentException Where the length or characters used in $content is invalid for the requested barcode format.
  */
 public function barcode($content, $type = Printer::BARCODE_CODE39)
 {
     /* Validate input */
     self::validateInteger($type, 65, 73, __FUNCTION__, "Barcode type");
     $len = strlen($content);
     switch ($type) {
         case self::BARCODE_UPCA:
             self::validateInteger($len, 11, 12, __FUNCTION__, "UPCA barcode content length");
             self::validateStringRegex($content, __FUNCTION__, "/^[0-9]{11,12}\$/", "UPCA barcode content");
             break;
         case self::BARCODE_UPCE:
             self::validateIntegerMulti($len, array(array(6, 8), array(11, 12)), __FUNCTION__, "UPCE barcode content length");
             self::validateStringRegex($content, __FUNCTION__, "/^([0-9]{6,8}|[0-9]{11,12})\$/", "UPCE barcode content");
             break;
         case self::BARCODE_JAN13:
             self::validateInteger($len, 12, 13, __FUNCTION__, "JAN13 barcode content length");
             self::validateStringRegex($content, __FUNCTION__, "/^[0-9]{12,13}\$/", "JAN13 barcode content");
             break;
         case self::BARCODE_JAN8:
             self::validateInteger($len, 7, 8, __FUNCTION__, "JAN8 barcode content length");
             self::validateStringRegex($content, __FUNCTION__, "/^[0-9]{7,8}\$/", "JAN8 barcode content");
             break;
         case self::BARCODE_CODE39:
             self::validateInteger($len, 1, 255, __FUNCTION__, "CODE39 barcode content length");
             // 255 is a limitation of the "function b" command, not the barcode format.
             self::validateStringRegex($content, __FUNCTION__, "/^([0-9A-Z \$\\%\\+\\-\\.\\/]+|\\*[0-9A-Z \$\\%\\+\\-\\.\\/]+\\*)\$/", "CODE39 barcode content");
             break;
         case self::BARCODE_ITF:
             self::validateInteger($len, 2, 255, __FUNCTION__, "ITF barcode content length");
             // 255 is a limitation of the "function b" command, not the barcode format.
             self::validateStringRegex($content, __FUNCTION__, "/^([0-9]{2})+\$/", "ITF barcode content");
             break;
         case self::BARCODE_CODABAR:
             self::validateInteger($len, 1, 255, __FUNCTION__, "Codabar barcode content length");
             // 255 is a limitation of the "function b" command, not the barcode format.
             self::validateStringRegex($content, __FUNCTION__, "/^[A-Da-d][0-9\$\\+\\-\\.\\/\\:]+[A-Da-d]\$/", "Codabar barcode content");
             break;
         case self::BARCODE_CODE93:
             self::validateInteger($len, 1, 255, __FUNCTION__, "Code93 barcode content length");
             // 255 is a limitation of the "function b" command, not the barcode format.
             self::validateStringRegex($content, __FUNCTION__, "/^[\\x00-\\x7F]+\$/", "Code93 barcode content");
             break;
         case self::BARCODE_CODE128:
             self::validateInteger($len, 1, 255, __FUNCTION__, "Code128 barcode content length");
             // 255 is a limitation of the "function b" command, not the barcode format.
             // The CODE128 encoder is quite complex, so only a very basic header-check is applied here.
             self::validateStringRegex($content, __FUNCTION__, "/^\\{[A-C][\\x00-\\x7F]+\$/", "Code128 barcode content");
             break;
     }
     if (!$this->profile->getSupportsBarcodeB()) {
         // A simpler barcode command which supports fewer codes
         self::validateInteger($type, 65, 71, __FUNCTION__);
         $this->connector->write(self::GS . "k" . chr($type - 65) . $content . self::NUL);
         return;
     }
     // More advanced function B, used in preference
     $this->connector->write(self::GS . "k" . chr($type) . chr(strlen($content)) . $content);
 }