Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Generowanie kodów kreskowych i wysyłanie pdf, Wrzucić kod kreskowy do pdf i wysłać go mailem
Juhas
post 25.01.2007, 16:47:35
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 25.01.2007

Ostrzeżenie: (0%)
-----


Cześć, mam następujący problem.
Muszę wygenerować kod kreskowy do pdf, a następnie ten pdf wysłać mailem.

Problem polega na tym, że nie mogę używać żadnego zewnętrznego oprogramowania typu genbarcode.

Wiem, jak dodać do pdf tekst(z obrazami jeszcze nie doszedłem - posługuję się klasą Cezpdf).

Jednak nie wiem, jak wysłać wygenerowany pdf mailem, zamiast pokazywać go w przeglądarce. Jednak głównym problemem jest teraz generowanie tego kodu kreskowego. Ktoś wie, jak to zrobić?
Go to the top of the page
+Quote Post
Nitro
post 28.01.2007, 22:52:25
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 10.03.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Generowanie kodu kreskowego to dość skomplikowana sprawa, a do tego istnieje conajmniej kilka jego typów. Tutaj http://www.algorytm.org/index.php?option=c...4&Itemid=54 znajdzie opis Ean-13 wraz z jego implementacją w kilku językach, może Ci się przyda winksmiley.jpg


--------------------
e-Złota Rybka
Life: lllllllllllllllllllllllll 27%
Go to the top of the page
+Quote Post
mike007
post 5.02.2007, 11:02:53
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.04.2006

Ostrzeżenie: (0%)
-----


Wygenerowanie kodu kreskowego nie jest tak skomplikowane. Dokładnie zajęło mi to 140 linijek kodu.
I pol dnia programowania.

Co do kodu to wykorzystaj EAN-13 na necie znajdziesz zasady generowania tego kodu.
Zwróć uwagę na strażników (pierwsze 3 i ostanie 3 kreski biało czarne) i generacje sumy kontrolnej.

Wiadomo musisz wykorzystać biblioteke gd2.

Jeśli chcesz zobaczyć jak to działa u mnie to proszę: www.omako.eu/kod.php (wpisz 12 cyfr bo inaczej będą błędy - nie ma jeszcze obsługi wyjątków (bo w sumie mi nie potrzebne))smile.gif
Go to the top of the page
+Quote Post
dywanesko
post 15.12.2008, 19:17:40
Post #4





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 25.11.2008

Ostrzeżenie: (0%)
-----


a moglbys sie podzielic kodem zrodlowym z tego pliczku kod.php? bo bardzo by mi sie to przydalo:)
Go to the top of the page
+Quote Post
webdice
post 15.12.2008, 19:31:30
Post #5


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Kiedyś pisałem (a raczej przepisywałem z Bodajże c++) coś takiego, na potrzeby pewnego serwisu. Nie mam dziś dostępu do czytnika więc nie sprawdzałem.

  1. <?php
  2.  
  3. class Code
  4. {
  5.    public function __construct ($code)
  6.    {
  7.        $lw = 2;
  8.        $hi = 100;
  9.        
  10.        $Lencode = array
  11.        (
  12.            '0001101',
  13.            '0011001',
  14.            '0010011',
  15.            '0111101',
  16.            '0100011',
  17.            '0110001',
  18.            '0101111',
  19.            '0111011',
  20.            '0110111',
  21.            '0001011'
  22.        );
  23.                  
  24.        $Rencode = array
  25.        (
  26.            '1110010',
  27.            '1100110',
  28.            '1101100',
  29.            '1000010',
  30.            '1011100',
  31.            '1001110',
  32.            '1010000',
  33.            '1000100',
  34.            '1001000',
  35.            '1110100'
  36.        );
  37.        
  38.        $ends   = '101';
  39.        $center = '01010';
  40.  
  41.          if (strlen ($code) != 11)
  42.        {
  43.            die ('Blad podczas tworzenia kodu kreskowego.');
  44.        }
  45.  
  46.        $ncode = '0' . $code;
  47.        $even  = 0;
  48.        $odd   = 0;
  49.        
  50.        for ($x = 0; $x < 12; $x++)
  51.        {
  52.            if ($x % 2)
  53.            {
  54.                $odd += $ncode[$x];
  55.            }
  56.            else
  57.            {
  58.                $even += $ncode[$x];
  59.            }
  60.        }
  61.          
  62.        $code .= (10 - (($odd * 3 + $even) % 10)) % 10;
  63.  
  64.        $bars  = $ends;
  65.          $bars .= $Lencode[$code[0]];
  66.        
  67.        for ($x = 1; $x < 6; $x++)
  68.        {
  69.            $bars .= $Lencode[$code[$x]];
  70.        }
  71.        
  72.        $bars .= $center;
  73.  
  74.        for ($x = 6; $x < 12; $x++)
  75.        {
  76.            $bars .= $Rencode[$code[$x]];
  77.        }
  78.        
  79.        $bars .= $ends;
  80.  
  81.        $img = ImageCreate        ($lw * 95 + 30, 50);
  82.        $fg    = ImageColorAllocate ($img, 0, 0, 0);
  83.                $bg   = ImageColorAllocate ($img, 255, 255, 255);
  84.  
  85.          ImageFilledRectangle ($img, 0, 0, $lw * 95 + 30, $hi + 30, $bg);
  86.        
  87.        $shift = 10;
  88.  
  89.        for ($x = 0; $x < strlen ($bars); $x++)
  90.        {
  91.            if (($x < 10) || ($x >= 45 && $x < 50) || ($x >= 85))
  92.            {
  93.                $sh = 10;
  94.            }
  95.            else
  96.            {
  97.                $sh = 0;
  98.            }
  99.        
  100.            if ($bars[$x] == '1')
  101.            {
  102.                $color = $fg;
  103.            }
  104.            else
  105.            {
  106.                $color = $bg;
  107.            }
  108.            
  109.            ImageFilledRectangle ($img, ($x * $lw) + 15, 5, ($x + 1) * $lw + 14, $hi + 5 + $sh, $color);
  110.        }
  111.  
  112.        ImageString ($img, 4, 5, $hi - 5, $code[0], $fg);
  113.        
  114.        for ($x = 0; $x < 5; $x++)
  115.        {
  116.            ImageString ($img, 5, $lw * (13 + $x * 6) + 15, $hi + 5, $code[$x+1], $fg);
  117.            ImageString ($img, 5, $lw * (53 + $x * 6) + 15, $hi + 5, $code[$x+6], $fg);
  118.        }
  119.        
  120.        ImageString ($img, 4, $lw * 95 + 17, $hi - 5, $code[11], $fg);
  121.  
  122.        //header ("Content-Type: image/png");
  123.          
  124.        ImagePNG ($img, 'code.png');
  125.    }
  126. }
  127.  
  128. ?>


Wywołanie:

  1. <?php
  2.  
  3. $CreateCode = new Code (12345678901);
  4.  
  5. ?>


Z tego co pamiętam, kod to 11 cyfr.
Go to the top of the page
+Quote Post
plmorpheus
post 27.04.2009, 09:06:38
Post #6





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

Ostrzeżenie: (0%)
-----


ehhh a mnie to nie chce działać sad.gif Proszę o pomoc w tej kwestii ponieważ jestem nowy w te klocki....
Zrobiłem sobie formularz ale jak kalikam Generuj to wyświetla mi komunikat "Błąd podczas tworzenia kodu kreskowego" sad.gif

Listing pliku:
  1. <?php
  2.  
  3. class Code
  4. {
  5.  public function __construct ($code)
  6.  {
  7.      $lw = 2;
  8.      $hi = 100;
  9.    
  10.      $Lencode = array
  11.      (
  12.          '0001101',
  13.          '0011001',
  14.          '0010011',
  15.          '0111101',
  16.          '0100011',
  17.          '0110001',
  18.          '0101111',
  19.          '0111011',
  20.          '0110111',
  21.          '0001011'
  22.      );
  23.                
  24.      $Rencode = array
  25.      (
  26.          '1110010',
  27.          '1100110',
  28.          '1101100',
  29.          '1000010',
  30.          '1011100',
  31.          '1001110',
  32.          '1010000',
  33.          '1000100',
  34.          '1001000',
  35.          '1110100'
  36.      );
  37.    
  38.      $ends   = '101';
  39.      $center = '01010';
  40.  
  41.        if (strlen ($code) != 11)
  42.      {
  43.          die ('Blad podczas tworzenia kodu kreskowego.');
  44.      }
  45.  
  46.      $ncode = '0' . $code;
  47.      $even  = 0;
  48.      $odd   = 0;
  49.    
  50.      for ($x = 0; $x < 12; $x++)
  51.      {
  52.          if ($x % 2)
  53.          {
  54.              $odd += $ncode[$x];
  55.          }
  56.          else
  57.          {
  58.              $even += $ncode[$x];
  59.          }
  60.      }
  61.      
  62.      $code .= (10 - (($odd * 3 + $even) % 10)) % 10;
  63.  
  64.      $bars  = $ends;
  65.        $bars .= $Lencode[$code[0]];
  66.    
  67.      for ($x = 1; $x < 6; $x++)
  68.      {
  69.          $bars .= $Lencode[$code[$x]];
  70.      }
  71.    
  72.      $bars .= $center;
  73.  
  74.      for ($x = 6; $x < 12; $x++)
  75.      {
  76.          $bars .= $Rencode[$code[$x]];
  77.      }
  78.    
  79.      $bars .= $ends;
  80.  
  81.      $img = ImageCreate        ($lw * 95 + 30, 50);
  82.      $fg    = ImageColorAllocate ($img, 0, 0, 0);
  83.              $bg   = ImageColorAllocate ($img, 255, 255, 255);
  84.  
  85.        ImageFilledRectangle ($img, 0, 0, $lw * 95 + 30, $hi + 30, $bg);
  86.    
  87.      $shift = 10;
  88.  
  89.      for ($x = 0; $x < strlen ($bars); $x++)
  90.      {
  91.          if (($x < 10) || ($x >= 45 && $x < 50) || ($x >= 85))
  92.          {
  93.              $sh = 10;
  94.          }
  95.          else
  96.          {
  97.              $sh = 0;
  98.          }
  99.    
  100.          if ($bars[$x] == '1')
  101.          {
  102.              $color = $fg;
  103.          }
  104.          else
  105.          {
  106.              $color = $bg;
  107.          }
  108.        
  109.          ImageFilledRectangle ($img, ($x * $lw) + 15, 5, ($x + 1) * $lw + 14, $hi + 5 + $sh, $color);
  110.      }
  111.  
  112.      ImageString ($img, 4, 5, $hi - 5, $code[0], $fg);
  113.    
  114.      for ($x = 0; $x < 5; $x++)
  115.      {
  116.          ImageString ($img, 5, $lw * (13 + $x * 6) + 15, $hi + 5, $code[$x+1], $fg);
  117.          ImageString ($img, 5, $lw * (53 + $x * 6) + 15, $hi + 5, $code[$x+6], $fg);
  118.      }
  119.    
  120.      ImageString ($img, 4, $lw * 95 + 17, $hi - 5, $code[11], $fg);
  121.  
  122.      //header ("Content-Type: image/png");
  123.      
  124.      ImagePNG ($img, 'code.png');
  125.  }
  126. }
  127.  
  128.  
  129.  
  130.  
  131. $CreateCode = new Code (012345678901);
  132.  
  133. ?>


Z góry dziękuję za odpowiedź

Ten post edytował plmorpheus 27.04.2009, 09:07:37
Go to the top of the page
+Quote Post
skowron-line
post 27.04.2009, 09:13:46
Post #7





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Po co samemu pisać
http://www.fpdf.org/ -> scripts -> Code 39 barcodes i inne.
Ja osobiście z tego kożystam i działa bardzo smile.gif + czytnik kodów i jest fajna zabawka, u mnie działa do inwentaryzacji faktur i jeszcze kilku innych rzeczy a w przyszlości inwentaryzacja poczty wychodzącej.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
osl
post 27.04.2009, 09:14:30
Post #8





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

Ostrzeżenie: (0%)
-----


tak tylko zerknąłem, czy wywołanie nie powinno wyglądać tak?

  1. <?php
  2. $CreateCode = new Code ("012345678901");
  3. ?>
Go to the top of the page
+Quote Post
webdice
post 27.04.2009, 09:22:45
Post #9


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. if (strlen ($code) != 11)
  3. {
  4.  die ('Blad podczas tworzenia kodu kreskowego.');
  5. }
  6. ?>


Kod musi mieć 11 cyfr.
Go to the top of the page
+Quote Post
plmorpheus
post 27.04.2009, 09:25:11
Post #10





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

Ostrzeżenie: (0%)
-----


Cytat(osl @ 27.04.2009, 09:14:30 ) *
tak tylko zerknąłem, czy wywołanie nie powinno wyglądać tak?

  1. <?php
  2. $CreateCode = new Code (&#092;"012345678901\");
  3. ?>


Zmienione; kod wygląda tak:

  1. <?php
  2.  
  3. class Code
  4. {
  5.  public function __construct ($code)
  6.  {
  7.      $lw = 2;
  8.      $hi = 100;
  9.    
  10.      $Lencode = array
  11.      (
  12.          '0001101',
  13.          '0011001',
  14.          '0010011',
  15.          '0111101',
  16.          '0100011',
  17.          '0110001',
  18.          '0101111',
  19.          '0111011',
  20.          '0110111',
  21.          '0001011'
  22.      );
  23.                
  24.      $Rencode = array
  25.      (
  26.          '1110010',
  27.          '1100110',
  28.          '1101100',
  29.          '1000010',
  30.          '1011100',
  31.          '1001110',
  32.          '1010000',
  33.          '1000100',
  34.          '1001000',
  35.          '1110100'
  36.      );
  37.    
  38.      $ends   = '101';
  39.      $center = '01010';
  40.  
  41.        if (strlen ($code) != 11)
  42.      {
  43.          die ('Blad podczas tworzenia kodu kreskowego.');
  44.      }
  45.  
  46.      $ncode = '0' . $code;
  47.      $even  = 0;
  48.      $odd   = 0;
  49.    
  50.      for ($x = 0; $x < 12; $x++)
  51.      {
  52.          if ($x % 2)
  53.          {
  54.              $odd += $ncode[$x];
  55.          }
  56.          else
  57.          {
  58.              $even += $ncode[$x];
  59.          }
  60.      }
  61.      
  62.      $code .= (10 - (($odd * 3 + $even) % 10)) % 10;
  63.  
  64.      $bars  = $ends;
  65.        $bars .= $Lencode[$code[0]];
  66.    
  67.      for ($x = 1; $x < 6; $x++)
  68.      {
  69.          $bars .= $Lencode[$code[$x]];
  70.      }
  71.    
  72.      $bars .= $center;
  73.  
  74.      for ($x = 6; $x < 12; $x++)
  75.      {
  76.          $bars .= $Rencode[$code[$x]];
  77.      }
  78.    
  79.      $bars .= $ends;
  80.  
  81.      $img = ImageCreate        ($lw * 95 + 30, 50);                // linia 81
  82.      $fg    = ImageColorAllocate ($img, 0, 0, 0);
  83.              $bg   = ImageColorAllocate ($img, 255, 255, 255);
  84.  
  85.        ImageFilledRectangle ($img, 0, 0, $lw * 95 + 30, $hi + 30, $bg);
  86.    
  87.      $shift = 10;
  88.  
  89.      for ($x = 0; $x < strlen ($bars); $x++)
  90.      {
  91.          if (($x < 10) || ($x >= 45 && $x < 50) || ($x >= 85))
  92.          {
  93.              $sh = 10;
  94.          }
  95.          else
  96.          {
  97.              $sh = 0;
  98.          }
  99.    
  100.          if ($bars[$x] == '1')
  101.          {
  102.              $color = $fg;
  103.          }
  104.          else
  105.          {
  106.              $color = $bg;
  107.          }
  108.        
  109.          ImageFilledRectangle ($img, ($x * $lw) + 15, 5, ($x + 1) * $lw + 14, $hi + 5 + $sh, $color);
  110.      }
  111.  
  112.      ImageString ($img, 4, 5, $hi - 5, $code[0], $fg);
  113.    
  114.      for ($x = 0; $x < 5; $x++)
  115.      {
  116.          ImageString ($img, 5, $lw * (13 + $x * 6) + 15, $hi + 5, $code[$x+1], $fg);
  117.          ImageString ($img, 5, $lw * (53 + $x * 6) + 15, $hi + 5, $code[$x+6], $fg);
  118.      }
  119.    
  120.      ImageString ($img, 4, $lw * 95 + 17, $hi - 5, $code[11], $fg);
  121.  
  122.      //header ("Content-Type: image/png");
  123.      
  124.      ImagePNG ($img, 'code.png');
  125.  }
  126. }
  127.  
  128.  
  129.  
  130. $CreateCode = new Code ("012345678901");
  131.  
  132. ?>


ale dalej ten sam efekt tiredsmiley.gif
Go to the top of the page
+Quote Post
osl
post 27.04.2009, 09:29:00
Post #11





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

Ostrzeżenie: (0%)
-----


ma być 11 cyfr, jak napisał webdice winksmiley.jpg
Go to the top of the page
+Quote Post
sowiq
post 27.04.2009, 09:29:45
Post #12





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(plmorpheus @ 27.04.2009, 10:25:11 ) *
ale dalej ten sam efekt tiredsmiley.gif
A umiesz liczyć? smile.gif Jak dla mnie 012345678901 to 12, a nie 11 znaków.

[edit]
za późno ;P

Ten post edytował sowiq 27.04.2009, 09:30:11
Go to the top of the page
+Quote Post
plmorpheus
post 27.04.2009, 09:33:19
Post #13





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

Ostrzeżenie: (0%)
-----


Cytat(osl @ 27.04.2009, 09:29:00 ) *
ma być 11 cyfr, jak napisał webdice winksmiley.jpg


mam teraz

  1. <?php
  2. $CreateCode = new Code ("12345678901");
  3. ?>


ale dla odmiany wyświetla mi się teraz pusta strona sad.gifsad.gifsad.gif
Go to the top of the page
+Quote Post
osl
post 27.04.2009, 09:36:03
Post #14





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

Ostrzeżenie: (0%)
-----


a co innego ma Ci się wyświetlić?
używasz na końcu imagepng - powinien Ci utworzyć plik code.png
Go to the top of the page
+Quote Post
sowiq
post 27.04.2009, 09:37:34
Post #15





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(plmorpheus @ 27.04.2009, 10:33:19 ) *
ale dla odmiany wyświetla mi się teraz pusta strona sad.gifsad.gifsad.gif
Na końcu klasy zamień na:
  1. <?php
  2. header ("Content-Type: image/png"); // odkomentowana linijka
  3. ImagePNG ($img); // wyświetlenie zamiast zapisu
  4. ?>
Go to the top of the page
+Quote Post
plmorpheus
post 27.04.2009, 10:01:41
Post #16





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

Ostrzeżenie: (0%)
-----


Cytat(osl @ 27.04.2009, 09:36:03 ) *
a co innego ma Ci się wyświetlić?
używasz na końcu imagepng - powinien Ci utworzyć plik code.png


racja tongue.gif tylko pojawił mi sięinny problem... otóż ten obrazek się nie odświeża - jak wpisuję inny kod to nie nadpiuje mi tego pliku z tym poprzednim kodem - za każdym razem wyświetla mi plik z kodem który się wygenerował przy pierwszej próbie sad.gif
Go to the top of the page
+Quote Post
osl
post 27.04.2009, 10:07:34
Post #17





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

Ostrzeżenie: (0%)
-----


nie wiem, dlaczego tak się dzieje,
zawsze możesz dodać linię usuwającą ten plik przed wygenerowaniem nowego;

możesz również zmienić nazwę pliku zależną od tych 11 cyfr - w tym momencie masz taki mały system cache na generowane obrazki.
Go to the top of the page
+Quote Post
plmorpheus
post 27.04.2009, 10:09:22
Post #18





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

Ostrzeżenie: (0%)
-----


Cytat(osl @ 27.04.2009, 10:07:34 ) *
zawsze możesz dodać linię usuwającą ten plik przed wygenerowaniem nowego;


mógłbyś podać jakby miałą wyglądać taka linia? Tak jak pisałem wcześniej - jestem nowy w te klocki stąd takie, pewnie dla niektórych w tym Ciebie, głupie i proste pytania.
Jednak każdy kiedyś zaczynał... smile.gif

pozdrawiam
Go to the top of the page
+Quote Post
osl
post 27.04.2009, 10:13:41
Post #19





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

Ostrzeżenie: (0%)
-----


poczytaj - Unlink winksmiley.jpg
Go to the top of the page
+Quote Post
plmorpheus
post 27.04.2009, 10:18:46
Post #20





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.01.2008

Ostrzeżenie: (0%)
-----


Cytat(osl @ 27.04.2009, 10:13:41 ) *
poczytaj - Unlink winksmiley.jpg


Przypomniało mi się zaraz po napisaniu postu - przepraszam za zbędne pytanie smile.gif

Tymczasem okazało się, że bład leży gdzie indziej - otóż nawet po ręcznym wykasowaniu pliku code.png i próbie wygenerowania nowego okazuje się, że za każdym razem jest generowany kod o wartości 123456789012 (sprawdzony skanerem). Co teraz?

Plik wygląda tak:

  1. <?php
  2. unlink('code.png');
  3. class Code
  4. {
  5.  public function __construct ($code)
  6.  {
  7.      $lw = 2;
  8.      $hi = 100;
  9.    
  10.      $Lencode = array
  11.      (
  12.          '0001101',
  13.          '0011001',
  14.          '0010011',
  15.          '0111101',
  16.          '0100011',
  17.          '0110001',
  18.          '0101111',
  19.          '0111011',
  20.          '0110111',
  21.          '0001011'
  22.      );
  23.                
  24.      $Rencode = array
  25.      (
  26.          '1110010',
  27.          '1100110',
  28.          '1101100',
  29.          '1000010',
  30.          '1011100',
  31.          '1001110',
  32.          '1010000',
  33.          '1000100',
  34.          '1001000',
  35.          '1110100'
  36.      );
  37.    
  38.      $ends   = '101';
  39.      $center = '01010';
  40.  
  41.        if (strlen ($code) != 11)
  42.      {
  43.          die ('Blad podczas tworzenia kodu kreskowego.');
  44.      }
  45.  
  46.      $ncode = '0' . $code;
  47.      $even  = 0;
  48.      $odd   = 0;
  49.    
  50.      for ($x = 0; $x < 12; $x++)
  51.      {
  52.          if ($x % 2)
  53.          {
  54.              $odd += $ncode[$x];
  55.          }
  56.          else
  57.          {
  58.              $even += $ncode[$x];
  59.          }
  60.      }
  61.      
  62.      $code .= (10 - (($odd * 3 + $even) % 10)) % 10;
  63.  
  64.      $bars  = $ends;
  65.        $bars .= $Lencode[$code[0]];
  66.    
  67.      for ($x = 1; $x < 6; $x++)
  68.      {
  69.          $bars .= $Lencode[$code[$x]];
  70.      }
  71.    
  72.      $bars .= $center;
  73.  
  74.      for ($x = 6; $x < 12; $x++)
  75.      {
  76.          $bars .= $Rencode[$code[$x]];
  77.      }
  78.    
  79.      $bars .= $ends;
  80.  
  81.      $img = ImageCreate        ($lw * 95 + 30, 50);                // linia 81
  82.      $fg    = ImageColorAllocate ($img, 0, 0, 0);
  83.              $bg   = ImageColorAllocate ($img, 255, 255, 255);
  84.  
  85.        ImageFilledRectangle ($img, 0, 0, $lw * 95 + 30, $hi + 30, $bg);
  86.    
  87.      $shift = 10;
  88.  
  89.      for ($x = 0; $x < strlen ($bars); $x++)
  90.      {
  91.          if (($x < 10) || ($x >= 45 && $x < 50) || ($x >= 85))
  92.          {
  93.              $sh = 10;
  94.          }
  95.          else
  96.          {
  97.              $sh = 0;
  98.          }
  99.    
  100.          if ($bars[$x] == '1')
  101.          {
  102.              $color = $fg;
  103.          }
  104.          else
  105.          {
  106.              $color = $bg;
  107.          }
  108.        
  109.          ImageFilledRectangle ($img, ($x * $lw) + 15, 5, ($x + 1) * $lw + 14, $hi + 5 + $sh, $color);
  110.      }
  111.  
  112.      ImageString ($img, 4, 5, $hi - 5, $code[0], $fg);
  113.    
  114.      for ($x = 0; $x < 5; $x++)
  115.      {
  116.          ImageString ($img, 5, $lw * (13 + $x * 6) + 15, $hi + 5, $code[$x+1], $fg);
  117.          ImageString ($img, 5, $lw * (53 + $x * 6) + 15, $hi + 5, $code[$x+6], $fg);
  118.      }
  119.    
  120.      ImageString ($img, 4, $lw * 95 + 17, $hi - 5, $code[11], $fg);
  121.  
  122.      //header ("Content-Type: image/png");
  123.      
  124.      ImagePNG ($img, 'code.png');
  125.  }
  126. }
  127.  
  128. $CreateCode = new Code ("12345678901");
  129.  
  130. ?>


Co teraz? sad.gif
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 18:02