Exemplo n.º 1
0
 public function fbarcode($valor, FPDF $PDF)
 {
     $fino = UnidadeMedida::px2milimetros(1);
     // valores em px
     $largo = UnidadeMedida::px2milimetros(2.3);
     // valor em px
     $altura = UnidadeMedida::px2milimetros(40);
     // valor em px
     $barcodes[0] = "00110";
     $barcodes[1] = "10001";
     $barcodes[2] = "01001";
     $barcodes[3] = "11000";
     $barcodes[4] = "00101";
     $barcodes[5] = "10100";
     $barcodes[6] = "01100";
     $barcodes[7] = "00011";
     $barcodes[8] = "10010";
     $barcodes[9] = "01010";
     for ($f1 = 9; $f1 >= 0; $f1--) {
         for ($f2 = 9; $f2 >= 0; $f2--) {
             $f = $f1 * 10 + $f2;
             $texto = "";
             for ($i = 1; $i < 6; $i++) {
                 $texto .= substr($barcodes[$f1], $i - 1, 1) . substr($barcodes[$f2], $i - 1, 1);
             }
             $barcodes[$f] = $texto;
         }
     }
     // Guarda inicial
     $PDF->Image(Gerador::getDirImages() . '/p.png', $PDF->GetX(), $PDF->GetY(), $fino, $altura);
     $PDF->SetX($PDF->GetX() + $fino);
     $PDF->Image(Gerador::getDirImages() . '/b.png', $PDF->GetX(), $PDF->GetY(), $fino, $altura);
     $PDF->SetX($PDF->GetX() + $fino);
     $PDF->Image(Gerador::getDirImages() . '/p.png', $PDF->GetX(), $PDF->GetY(), $fino, $altura);
     $PDF->SetX($PDF->GetX() + $fino);
     $PDF->Image(Gerador::getDirImages() . '/b.png', $PDF->GetX(), $PDF->GetY(), $fino, $altura);
     $PDF->SetX($PDF->GetX() + $fino);
     $texto = $valor;
     if (strlen($texto) % 2 != 0) {
         $texto = "0" . $texto;
     }
     // Draw dos dados
     while (strlen($texto) > 0) {
         $i = round(Substr::esquerda($texto, 2));
         $texto = Substr::direita($texto, strlen($texto) - 2);
         $f = $barcodes[$i];
         for ($i = 1; $i < 11; $i += 2) {
             if (substr($f, $i - 1, 1) == "0") {
                 $f1 = $fino;
             } else {
                 $f1 = $largo;
             }
             $PDF->Image(Gerador::getDirImages() . '/p.png', $PDF->GetX(), $PDF->GetY(), $f1, $altura);
             $PDF->SetX($PDF->GetX() + $f1);
             if (substr($f, $i, 1) == "0") {
                 $f2 = $fino;
             } else {
                 $f2 = $largo;
             }
             $PDF->Image(Gerador::getDirImages() . '/b.png', $PDF->GetX(), $PDF->GetY(), $f2, $altura);
             $PDF->SetX($PDF->GetX() + $f2);
         }
     }
     // Draw guarda final
     $PDF->Image(Gerador::getDirImages() . '/p.png', $PDF->GetX(), $PDF->GetY(), $largo, $altura);
     $PDF->SetX($PDF->GetX() + $largo);
     $PDF->Image(Gerador::getDirImages() . '/b.png', $PDF->GetX(), $PDF->GetY(), $fino, $altura);
     $PDF->SetX($PDF->GetX() + $fino);
     $PDF->Image(Gerador::getDirImages() . '/p.png', $PDF->GetX(), $PDF->GetY(), $fino, $altura);
     $PDF->SetX($PDF->GetX() + $fino);
     $PDF->Image(Gerador::getDirImages() . '/b.png', $PDF->GetX(), $PDF->GetY(), UnidadeMedida::px2milimetros(1), $altura);
     $PDF->SetX($PDF->GetX() + UnidadeMedida::px2milimetros(1));
 }