Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czytanie kodów kreskowych
Forum PHP.pl > Forum > PHP
dobryvinyl.com
Witam,
czy ktos sie orjentuje czy w jakis logiczny sposob da sie do formularza na stronie wczytac kod kreskowy z opakowania? Proces mial by wygladac tak:

- klikam w polu tekstowym aby byloaktywne
- najezdzam laserem na kod kreskowy
- lapie kod i mam juz go w formularzu.


Czy ktos to przerabial?
ActivePlayer
tak, z tego co pamietam to na forum był już o tym temat... scanner o tym pisał. uzyj wyszukiwarki...
scanner
Czytniki kodów kreskowych wysyłaja odczytana sekwencję jako zwykłe impulsy identyczne z tymi wysyłanymi z klawiatury. Więc jak klikniesz w pole formulara i pojedziesz kod laserem, to czytnik "wklepie" za ciebie kod. rownie dobrze mozęsz ten kod przepisac recznie - kreski i cyferki pod nimi sa tożsame.
dobryvinyl.com
spoko przepisac 1 kod, moze 10. Ale ja mam co tydzien czesac 4 000 kodow wiec lepiej je wklepywac automatycznie.
hwao
nie mam pojecia jak to zupelnie wyglada, gdyz nigdy sie tym nie zajmowalem.. ale mozna by sprobowac tak.

Nie mam pojecia jak ten sygnal z liczba jest przekazywany (i czy odbierasz go jakos po drodze), ale moza by napisac jakas aplikacje ktora wylapuje ten kod (obojetnie jakim jezyku, np c++ - chyba ze da sie to nawet w php). Ona wysyla GET'em dane dotyczace kodu (jaki to kod, mozesz dodac czas itp.) php zapisuje je sobie do bazy danych.

W tej aplikacji co masz zaladowac do textaren'a robisz tak...

Przycisk jak go sie klika, to albo:
- Odswierzasz strone i dane sa pobierane z bazy danych.
- Pobierasz te dane przez js i wstawiassz do textaren'a.

No to tyle..napewno jest to mozliwe ale z tego iz nigdy w tym nie siedzialem nie wiem jak to najlepiej zrealizowac.
dobryvinyl.com
jezeli to co pisal scanner to prawda, a nie watpie ze mowi prawde to sam czytnik powinien przzucac kod do formularza? Dzis bede musial sobie zalatwic czytnik. Ktos wie pod co to sie podlacza w kompie?
FiDO
Jest tak jak napisal scanner. Kiedys sie chwile bawilem jakims czytnikiem (wcale nie jakims z gornej polki.. wrecz przeciwnie nawet) i on poprostu wkleja te znaki tak jak bys je wpisal z klawiatury. Mozesz sobie nawet otworzyc notatnik, przejechac laserem i powinienes ujrzec "wpisany" kod. Nie widze przeszkod czemu nie mialby sie taki kod wklejac do formularza na stronie.
Kinool
a tak w inna strone smile.gif

chodzi mi o generowanie kodow smile.gif moza to zrobic jako PNG tylko chodzi mi o opis jak wygladaja poszczegolne cyferki? smile.gif
mike
Cytat(Kinool @ 2005-11-03 11:53:30)
(...) chodzi mi o generowanie kodow smile.gif (...)

Znalezione tutaj: Image Functions wśród komentarzy użytkowników.
  1. <?php
  2.  
  3. function UPCAbarcode($code) {
  4. $lw = 2; $hi = 100;
  5. $Lencode = array('0001101','0011001','0010011','0111101','0100011',
  6.  '0110001','0101111','0111011','0110111','0001011');
  7. $Rencode = array('1110010','1100110','1101100','1000010','1011100',
  8.  '1001110','1010000','1000100','1001000','1110100');
  9. $ends = '101'; $center = '01010';
  10. /* UPC-A Must be 11 digits, we compute the checksum. */
  11. if ( strlen($code) != 11 ) { die("UPC-A Must be 11 digits."); }
  12. /* Compute the EAN-13 Checksum digit */
  13. $ncode = '0'.$code;
  14. $even = 0; $odd = 0;
  15. for ($x=0;$x<12;$x++) {
  16.  if ($x % 2) { $odd += $ncode[$x]; } else { $even += $ncode[$x]; }
  17. }
  18. $code.=(10 - (($odd * 3 + $even) % 10)) % 10;
  19. /* Create the bar encoding using a binary string */
  20. $bars=$ends;
  21. $bars.=$Lencode[$code[0]];
  22. for($x=1;$x<6;$x++) {
  23.  $bars.=$Lencode[$code[$x]];
  24. }
  25. $bars.=$center;
  26. for($x=6;$x<12;$x++) {
  27.  $bars.=$Rencode[$code[$x]];
  28. }
  29. $bars.=$ends;
  30. /* Generate the Barcode Image */
  31. $img = ImageCreate($lw*95+30,$hi+30);
  32. $fg = ImageColorAllocate($img, 0, 0, 0);
  33. $bg = ImageColorAllocate($img, 255, 255, 255);
  34. ImageFilledRectangle($img, 0, 0, $lw*95+30, $hi+30, $bg);
  35. $shift=10;
  36. for ($x=0;$x<strlen($bars);$x++) {
  37.  if (($x<10) || ($x>=45 && $x<50) || ($x >=85)) { $sh=10; } else { $sh=0; }
  38.  if ($bars[$x] == '1') { $color = $fg; } else { $color = $bg; }
  39.  ImageFilledRectangle($img, ($x*$lw)+15,5,($x+1)*$lw+14,$hi+5+$sh,$color);
  40. }
  41. /* Add the Human Readable Label */
  42. ImageString($img,4,5,$hi-5,$code[0],$fg);
  43. for ($x=0;$x<5;$x++) {
  44.  ImageString($img,5,$lw*(13+$x*6)+15,$hi+5,$code[$x+1],$fg);
  45.  ImageString($img,5,$lw*(53+$x*6)+15,$hi+5,$code[$x+6],$fg);
  46. }
  47. ImageString($img,4,$lw*95+17,$hi-5,$code[11],$fg);
  48. /* Output the Header and Content. */
  49. header("Content-Type: image/png");
  50. ImagePNG($img);
  51. }
  52.  
  53. UPCAbarcode('12345678901');
  54.  
  55. ?>
Kinool
jak ktos jest zainteresowany to sa fonty do generowania kodow smile.gif

http://antraxja-fonts.iweb.pl/index.php?sh...e&litera=b&od=1

calkiem przyjemna sprawa hehe smile.gif
a o samych kodach mozna troche poczytac tutaj.


---- EDIT ----

walsnie pisze malutka klase do generowania kodow, kozystam z kodow w fontach smile.gif i teraz maly zong funkcja imagettftext robi antialiasign na fantach a to jest niepozadane smile.gif mozna jakos wylaczyc te rozmywanie aby font byl kontrastowy bez rozmyc? szukam w manualu natrafilem na cos ale niebradzo mi to wychodzi smile.gif
Bakus
http://php.idn.net.p/imageantialias powinno pomóc biggrin.gif
Kinool
cos nie tak z linkiem (http://php.idn.net.pl/imageantialias)

jesli chodzi ci o funkcje imageantialias no to niestety ale nie daje mi tego co chce :| font nadal jest "rozjechany"
dr_bonzo
Zainteresowal mnie ten temat i oto linki:

Jak dzialaja, jak podlaczyc do kompa + jak z nich czytac
http://www.taltech.com/TALtech_web/resourc..._bc/bcpwork.htm
http://en.wikipedia.org/wiki/Barcode_scanner

barcode generator
http://www.raise-the-bar.co.uk/cgi-bin/webbarcodegen.pl


GOOGLE:
barcode read rs232 reader
rafalgr
Proponuję spróbować generować kody w pdf-ie. Sprawdzone i działa pod czytnikiem. PDFBarcode - http://www.grana.to/pdfbarcode/
Koshin
a ja mam pytanie zwiazane z tematem, ale calkiem z innej strony...

bo i system do czytania kodow mam (jest tak jak piszą wyzej, okienko w formularzu)
i generator wlasnych kodow kreskowych ...

ale co z tego mozna zrobic? smile.gif

kolega wyzej pisze ze ma 4000 kodow do zczytania.
ale co z nimi? przeciez one tylko przekazuja identyfikator produktu. czy w tych cyferkach jest jeszcze cos przekazywane?

obserwowalem kody kreskowe ze sklepow spozywczych - na koncu wyglada ze jest cena, ale gdzie jest masa, ilosc, kod produktu/ przeciez to sie nie miesci w tym kodzie...
dr_bonzo
Nie znam sie dokladnie na tych kodach, ale lepiej przekazac ID produktu, a szczegolowe dane (cena, masa, itd) sa w bazie dancyh.
Kupujesz 0.765 kilo miesa -- drukowana jest naklejka z kodem + cena + masa (podbrana z wagi), w tym czasie do bazy jest wprowadzany nowy produkt: mieso, masa, cena (choc to moze byc wyliczone: masa * cena/kg). Przy kasie ID zostaje zczytany, za bazy pobierana jest cena, a produkt usuwany z "magazynu" (tymczasowy wirtualny magazyn na czas zakupu tego towaru).

Tak jak w bazach danych: wystarczy przekazac ID rekordu, a reszte informacji mozesz sobie sam pobrac z tej bazy.
Kinool
zalezy od rodzaju kodu, mozesz tam przechowywac liczby lub liczby+tekt i niekotre znaki, gneralnie tzrymasz tam identyfikatory a inne szczegoly sa w bazie.

zasada jest np taka:
1) masz kod produktu 332432 w baziw danych pod rekordem id wynoszacym 332432 trzymasz szczegoly tego produktu cene, mase i co tam tylko chesz
2) skanerem zczytujesz kod aplikacja odbiera kod i wysyla zapytanie do bazy
3) baza odpowiada na zapytanie i zwraca aplikacji dane
4) aplikacja wysyla ci informacje

w sklepach dziala to podobnie tyko taka roznica ze skner pobiera ID produktu kasa z bazy dostaje cene i nazwe co potem masz wydrukowane na paragonie oraz cene ostateczna

zalety: pani w kasie nie musi nic liczyc ani wklepywac jakichsl cyferek (ceny czy kodu produkt)


---- EDIT ----

co do kodow na produktach spozywczych to z tego co sie orientuje pierwsze 3 cyfry to kod kraju w jakim zostal wyprodukowany lub opakowany, dalsze 4 albo 5 (nie pamietam dokladnie) to kod firmy ktora to wyprodukowala pozostale liczby to juz identyfikator produktu

ceny tam nie ma zakodowanej bo to zalezy od sklepu jaka ma marze itp.
rafalgr
O kodach , sposobie kodowania i innych sprawach związanych z kodami paskowymi poczytajcie na stronach www.ean.pl. Tam jest to dokładnie wyjaśnione.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.