Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Generowanie kodów kreskowych i wysyłanie pdf, Wrzucić kod kreskowy do pdf i wysłać go mailem
Juhas
post
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
 
Start new topic
Odpowiedzi
webdice
post
Post #2


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

Posty w temacie
- Juhas   Generowanie kodów kreskowych i wysyłanie pdf   25.01.2007, 16:47:35
- - Nitro   Generowanie kodu kreskowego to dość skomplikowana ...   28.01.2007, 22:52:25
- - mike007   Wygenerowanie kodu kreskowego nie jest tak skompli...   5.02.2007, 11:02:53
- - dywanesko   a moglbys sie podzielic kodem zrodlowym z tego pli...   15.12.2008, 19:17:40
- - webdice   Kiedyś pisałem (a raczej przepisywa...   15.12.2008, 19:31:30
- - plmorpheus   ehhh a mnie to nie chce działać Prosz...   27.04.2009, 09:06:38
- - skowron-line   Po co samemu pisać http://www.fpdf.org/ -> scr...   27.04.2009, 09:13:46
- - osl   tak tylko zerknąłem, czy wywołanie nie powinno wyg...   27.04.2009, 09:14:30
|- - plmorpheus   Cytat(osl @ 27.04.2009, 09:14:30 ) ta...   27.04.2009, 09:25:11
|- - sowiq   Cytat(plmorpheus @ 27.04.2009, 10:25...   27.04.2009, 09:29:45
- - webdice   [PHP] pobierz, plaintext <?phpif (strlen ...   27.04.2009, 09:22:45
- - osl   ma być 11 cyfr, jak napisał webdice   27.04.2009, 09:29:00
|- - plmorpheus   Cytat(osl @ 27.04.2009, 09:29:00 ) ma...   27.04.2009, 09:33:19
|- - sowiq   Cytat(plmorpheus @ 27.04.2009, 10:33...   27.04.2009, 09:37:34
- - osl   a co innego ma Ci się wyświetlić? używasz na końcu...   27.04.2009, 09:36:03
|- - plmorpheus   Cytat(osl @ 27.04.2009, 09:36:03 ) a ...   27.04.2009, 10:01:41
- - osl   nie wiem, dlaczego tak się dzieje, zawsze możesz ...   27.04.2009, 10:07:34
|- - plmorpheus   Cytat(osl @ 27.04.2009, 10:07:34 ) za...   27.04.2009, 10:09:22
- - osl   poczytaj - Unlink   27.04.2009, 10:13:41
|- - plmorpheus   Cytat(osl @ 27.04.2009, 10:13:41 ) po...   27.04.2009, 10:18:46
- - osl   a gdzie tworzysz nową instancję klasy Code z innym...   27.04.2009, 10:55:27
- - webdice   Nie ma żadnych sum kontrolnych. Dwójka na ko...   27.04.2009, 11:57:44
|- - plmorpheus   Cytat(webdice @ 27.04.2009, 12:57:44 ...   27.04.2009, 13:14:33
- - osl   każdy kod kreskowy ma na końcu cyfrę kontrolną. w...   27.04.2009, 12:18:03
- - osl   taka mała dygresja - kod zaproponowany przez webdi...   27.04.2009, 13:34:01
- - webdice   Rzeczywiście, skrypt generuje 12 liczbowy kod...   27.04.2009, 15:28:43


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 Aktualny czas: 18.10.2025 - 10:16