public static function render($barcode)
 {
     $width = $barcode->width ? $barcode->width : 0.4;
     $height = $barcode->height ? $barcode->height : 20;
     xml2pdf_barcode_code39::Code39($barcode->x, $barcode->y, $barcode->barcode, true, false, $width, $height, true, $barcode->pdf);
 }
 /**
  *
  * @param float $x
  * @param float $y
  * @param string $code
  * @param boolean $ext
  * @param boolean $cks
  * @param float $w
  * @param float $h
  * @param boolean $wide
  * @param object $pdf
  * @return void
  */
 public static function Code39($x, $y, $code, $ext = true, $cks = false, $w = 0.4, $h = 20, $wide = true, $pdf)
 {
     if ($code == '') {
         return;
     }
     //suppression des accents
     $code = strtr($code, 'àâäéèêëìîïòôöùûü', 'aaaeeeeiiiooouuu');
     //affichage du code
     $pdf->SetFont('Arial', '', 10);
     $pdf->Text($x, $y + $h + 4, $code);
     if ($ext) {
         //encodage étendu
         $code = xml2pdf_barcode_code39::encode_code39_ext($code);
     } else {
         //passage en majuscules
         $code = strtoupper($code);
         //contrôle validité
         if (!preg_match('|^[0-9A-Z. $/+%-]*$|', $code)) {
             $pdf->Error('Invalid barcode value: ' . $code);
         }
     }
     //calcul du checksum
     if ($cks) {
         $code .= xml2pdf_barcode_code39::checksum_code39($code);
     }
     //ajout des caractères début / fin
     $code = '*' . $code . '*';
     //tableaux de correspondance caractères / barres
     $narrow_encoding = array('0' => '101001101101', '1' => '110100101011', '2' => '101100101011', '3' => '110110010101', '4' => '101001101011', '5' => '110100110101', '6' => '101100110101', '7' => '101001011011', '8' => '110100101101', '9' => '101100101101', 'A' => '110101001011', 'B' => '101101001011', 'C' => '110110100101', 'D' => '101011001011', 'E' => '110101100101', 'F' => '101101100101', 'G' => '101010011011', 'H' => '110101001101', 'I' => '101101001101', 'J' => '101011001101', 'K' => '110101010011', 'L' => '101101010011', 'M' => '110110101001', 'N' => '101011010011', 'O' => '110101101001', 'P' => '101101101001', 'Q' => '101010110011', 'R' => '110101011001', 'S' => '101101011001', 'T' => '101011011001', 'U' => '110010101011', 'V' => '100110101011', 'W' => '110011010101', 'X' => '100101101011', 'Y' => '110010110101', 'Z' => '100110110101', '-' => '100101011011', '.' => '110010101101', ' ' => '100110101101', '*' => '100101101101', '$' => '100100100101', '/' => '100100101001', '+' => '100101001001', '%' => '101001001001');
     $wide_encoding = array('0' => '101000111011101', '1' => '111010001010111', '2' => '101110001010111', '3' => '111011100010101', '4' => '101000111010111', '5' => '111010001110101', '6' => '101110001110101', '7' => '101000101110111', '8' => '111010001011101', '9' => '101110001011101', 'A' => '111010100010111', 'B' => '101110100010111', 'C' => '111011101000101', 'D' => '101011100010111', 'E' => '111010111000101', 'F' => '101110111000101', 'G' => '101010001110111', 'H' => '111010100011101', 'I' => '101110100011101', 'J' => '101011100011101', 'K' => '111010101000111', 'L' => '101110101000111', 'M' => '111011101010001', 'N' => '101011101000111', 'O' => '111010111010001', 'P' => '101110111010001', 'Q' => '101010111000111', 'R' => '111010101110001', 'S' => '101110101110001', 'T' => '101011101110001', 'U' => '111000101010111', 'V' => '100011101010111', 'W' => '111000111010101', 'X' => '100010111010111', 'Y' => '111000101110101', 'Z' => '100011101110101', '-' => '100010101110111', '.' => '111000101011101', ' ' => '100011101011101', '*' => '100010111011101', '$' => '100010001000101', '/' => '100010001010001', '+' => '100010100010001', '%' => '101000100010001');
     //le code barre est déterminé en version large ou étroite (meilleure lisibilité)
     //large observe un rapport 3:1 pour le rapport barre large / barre etroite
     //etroit                   2:1
     $encoding = $wide ? $wide_encoding : $narrow_encoding;
     //espace inter-caractère
     $gap = $w > 0.29 ? '00' : '0';
     //encodage
     $encode = '';
     for ($i = 0; $i < strlen($code); $i++) {
         $encode .= $encoding[$code[$i]] . $gap;
     }
     //dessin
     xml2pdf_barcode_code39::draw_code39($encode, $x, $y, $w, $h, $pdf);
 }