![]() |
![]() |
![]()
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ć? |
|
|
![]() |
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
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))(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
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:)
|
|
|
![]()
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.
Wywołanie:
Z tego co pamiętam, kod to 11 cyfr. |
|
|
![]()
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ć (IMG:http://forum.php.pl/style_emoticons/default/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" (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Listing pliku:
Z góry dziękuję za odpowiedź Ten post edytował plmorpheus 27.04.2009, 09:07:37 |
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/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. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 41 Dołączył: 6.04.2009 Skąd: Gdańsk/okolice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
tak tylko zerknąłem, czy wywołanie nie powinno wyglądać tak?
Zmienione; kod wygląda tak:
ale dalej ten sam efekt (IMG:http://forum.php.pl/style_emoticons/default/tiredsmiley.gif) |
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
ale dalej ten sam efekt (IMG:http://forum.php.pl/style_emoticons/default/tiredsmiley.gif) A umiesz liczyć? (IMG:http://forum.php.pl/style_emoticons/default/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 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
ma być 11 cyfr, jak napisał webdice (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) mam teraz
ale dla odmiany wyświetla mi się teraz pusta strona (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]()
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 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
ale dla odmiany wyświetla mi się teraz pusta strona (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Na końcu klasy zamień na:
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
a co innego ma Ci się wyświetlić? używasz na końcu imagepng - powinien Ci utworzyć plik code.png racja (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]()
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. |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
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ł... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pozdrawiam |
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
poczytaj - Unlink (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Przypomniało mi się zaraz po napisaniu postu - przepraszam za zbędne pytanie (IMG:http://forum.php.pl/style_emoticons/default/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:
Co teraz? (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 41 Dołączył: 6.04.2009 Skąd: Gdańsk/okolice Ostrzeżenie: (0%) ![]() ![]() |
a gdzie tworzysz nową instancję klasy Code z innymi paramtrami?
tutaj wywołujesz cały czas dla tych samych danych.
Dwójka na końcu jest zapewne tzw. cyfrą kontrolną kodu kreskowego, zależną od tego co kodujesz wcześniej. |
|
|
![]()
Post
#22
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Nie ma żadnych sum kontrolnych. Dwójka na końcu jest prawdopodobnie spowodowana złą konfiguracją czytnika. Czytnik można skonfigurować aby na przykład dodawał enter na końcu kodu (a w Twoim wypadku liczbę dwa). Sprawdź na innym kodzie (nie generowanym przez skrypt) a zapewne dostaniesz kod z dwójką na końcu. Jeśli tak się stanie będziesz musiał przeprogramować urządzenie.
|
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 41 Dołączył: 6.04.2009 Skąd: Gdańsk/okolice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma żadnych sum kontrolnych. Dwójka na końcu jest prawdopodobnie spowodowana złą konfiguracją czytnika. Czytnik można skonfigurować aby na przykład dodawał enter na końcu kodu (a w Twoim wypadku liczbę dwa). Sprawdź na innym kodzie (nie generowanym przez skrypt) a zapewne dostaniesz kod z dwójką na końcu. Jeśli tak się stanie będziesz musiał przeprogramować urządzenie. Czytnik nie dodaje dwójki na końcu, za to dodaje znak dolara na początku... :/ ale nie rozumiem co to ma do rzeczy - mówiemy o generowaniu kodu z liczby a nie jego zczytywaniu przez czytnik... |
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 41 Dołączył: 6.04.2009 Skąd: Gdańsk/okolice Ostrzeżenie: (0%) ![]() ![]() |
taka mała dygresja - kod zaproponowany przez webdice zdaje się generuje kod EAN-13. W tym momencie nie rozumiem tylko, dlaczego wymaga podania 11 znaków - wg. mnie powinno być ich 12+1 cyfra kontrolna=13 jak nazwa wskazuje...
ale to tylko moje przypuszczenia, być może autor skryptu miał w tym jakiś cel. |
|
|
![]()
Post
#26
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Rzeczywiście, skrypt generuje 12 liczbowy kod (wymagane jest w dalszym ciągu jedenaście cyfr). Możesz zmienić 81 linię na:
będzie widział wtedy cały kod. W aplikacji która tworzyłem, wykorzystywane były tylko cztery pierwsze znaki, pozostałe były losowe. Za zamieszanie przepraszam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 11:38 |