ehhh znalazłem rozwiązanie.... wszystko jest bardzo ładnie udokumentowane przez producenta i do tego są dołączone działające skrypty java :-)
Rzecz ma się dużo prościej niż się spodziewałem.... mogę przekazać dane z php do skryptów java i drukuję paragon :-)
W każdym razie dzięki za pomoc
Witam!
Ponieważ już kilku z forumowiczów do mnie napisało, podpowiem wszystkim zainteresowanym tym tematem, jak się za to brać.
Otóż na stronie
http://www.posnet.com.pl/index.php?pid=1307 jest do pobrania kontrolka Active-X dla drukarki Posnet Thermal (EXE; 644 KB). Trzeba ją najpierw pobrać i zainstalować :-)))
W katalogu DOC są 2 ważne pliki: strona_testowa_ocx.htm oraz instrukcja_ocx.pdf, natomiast biblioteka ThermalLib.ocx (najważniejsza z tego wszystkiego - ale jej nie modyfikujemy :-) ) znajduje się piętro wyżej :-)
Wszystkie potrzebne Wam funkcje są użyte w pliku strona_testowa_ocx.htm i można sobie je łatwo podejrzeć i użyć we własnych skryptach. Trzeba pamiętać o poprawnym osadzeniu obiektu:
<OBJECT id=ThermalLib height=0 width=0 classid=clsid:904511D2-5407-4033-8DAD-07B33EC7317E><PARAM NAME="_Version" VALUE="65536"><PARAM NAME="_ExtentX" VALUE="26"><PARAM NAME="_ExtentY" VALUE="26"><PARAM NAME="_StockProps" VALUE="0"></OBJECT>
a także o tym, że Active-x działa niestety tylko w IE no i trzeba go nieraz "włączyć" w zabezpieczeniach przeglądarki. Pamiętajcie, że także biblioteka .ocx musi być dostępna najlepiej w tym samych katalogu co Wasz skrypt.
Oto, w skrócie i bez kontekstu, jak dostosowałem funkcje do moich potrzeb - tzn bez formularzy itp i jak je połączyłem z moimi skryptami (przykład 3 podstawowych funkcji, które używam - inne mi są akurat w tej chwili niepotrzebne):
[funkcje]
...
<script LANGUAGE='JavaScript1.1'>
function OpenPort() {
data = ('COM1')
ThermalLib.THLOpenPort(data)
ThermalLib.THLSendBel()
}
function LBTRSHDR( ilosc_pozycji_sprzedazy,ilosc_dodatkowych_linii_tekstu,linia1,linia2,linia3 )
{
var ico = ThermalLib.LBTRSHDR(ilosc_pozycji_sprzedazy,ilosc_dodatkowych_linii_tekstu,linia
,linia2,linia3)
alert(\"LBTRSHDR: \" + ico)
}
function LBTRSLN( numer_linijki,rodzaj_rabatu,opis_rabatu,nazwa_towaru,ilosc,stawka_ptu,cena_jedno
tkowa_brutto,razem_brutto,
kwota_rabatu,opis_rabatu )
{
var ico = ThermalLib.LBTRSLN( numer_linijki,rodzaj_rabatu,opis_rabatu,nazwa_towaru,ilosc,stawka_ptu,cena_jedno
tkowa_brutto,razem_brutto,kwota_rabatu,opis_rabatu )
alert( \"LBTRSLN : \" + ico)
}
function LBTREXIT(rabatu_procentowy,ilosc_dodatkowych_linii_stopki,rodzaj_rabatu,kod_kasy
kasjera,linia1,linia2,linia3,razem_zaplacono,razem_naleznosc,rabat)
{
var ico = ThermalLib.LBTREXIT(rabatu_procentowy,ilosc_dodatkowych_linii_stopki,rodzaj_raba
u,kod_kasy_kasjera,linia1,linia2,linia3,razem_zaplacono,razem_naleznosc,rabat)
alert(\"LBTREXIT : \" + ico)
}
</script>
...
[zastosowanie funkcji (bez kontekstu - fragmenty wycięte ze skryptów)]
...
/* ##### FISKALIZACJA Etap I - Otwarcie portu COM + inicjalizacja fiskalizacji ##### */
echo "<script language='Javascript'>";
echo "OpenPort();";
echo "LBTRSHDR( '0','0','0','0','0' );";
echo "</script>";
/* ######################################################## */
/* ##### FISKALIZACJA Etap II - wysłanie pozycji sprzedaży ############################# */
echo "<script language='Javascript'>";
echo "LBTRSLN( '".$linijka."','0','0','".substr($produkt[0],0,20)."(".$produkt[2].")"."','".$produkt[1]."','".
$produkt[2]."','".$produkt[3]."','".$produkt[4]."','0','0' );";
echo "</script>";
/* ##################################################################### */
/* ##### FISKALIZACJA Etap III - zakończenia ####################### */
echo "<script language='Javascript'>";
echo "LBTREXIT( '0','0','0','1SW','0','0','0','".$laczna_naleznosc."','".$laczna_naleznosc."','0' );";
echo "</script>";
/* ###################################################### */
...
Nie zastanawiałem się jeszce nad tym co z kontrolą błedów ale nawet nie mam pojęcia jak przekazać do php wynik funkcji Javascript :-)
Wszystkie funkcje są dobrze udokumentowany w instrukcji .pdf
Pozdrawiam i zyczę powodzenia
mlattari
Witam!
Ponieważ już kilku z forumowiczów do mnie napisało, podpowiem wszystkim zainteresowanym tym tematem, jak się za to brać.
Otóż na stronie
http://www.posnet.com.pl/index.php?pid=1307 jest do pobrania kontrolka Active-X dla drukarki Posnet Thermal (EXE; 644 KB). Trzeba ją najpierw pobrać i zainstalować :-)))
W katalogu DOC są 2 ważne pliki: strona_testowa_ocx.htm oraz instrukcja_ocx.pdf, natomiast biblioteka ThermalLib.ocx (najważniejsza z tego wszystkiego - ale jej nie modyfikujemy :-) ) znajduje się piętro wyżej :-)
Wszystkie potrzebne Wam funkcje są użyte w pliku strona_testowa_ocx.htm i można sobie je łatwo podejrzeć i użyć we własnych skryptach. Trzeba pamiętać o poprawnym osadzeniu obiektu:
<OBJECT id=ThermalLib height=0 width=0 classid=clsid:904511D2-5407-4033-8DAD-07B33EC7317E><PARAM NAME="_Version" VALUE="65536"><PARAM NAME="_ExtentX" VALUE="26"><PARAM NAME="_ExtentY" VALUE="26"><PARAM NAME="_StockProps" VALUE="0"></OBJECT>
a także o tym, że Active-x działa niestety tylko w IE no i trzeba go nieraz "włączyć" w zabezpieczeniach przeglądarki. Pamiętajcie, że także biblioteka .ocx musi być dostępna najlepiej w tym samych katalogu co Wasz skrypt.
Oto, w skrócie i bez kontekstu, jak dostosowałem funkcje do moich potrzeb - tzn bez formularzy itp i jak je połączyłem z moimi skryptami (przykład 3 podstawowych funkcji, które używam - inne mi są akurat w tej chwili niepotrzebne):
[funkcje]
...
<script LANGUAGE='JavaScript1.1'>
function OpenPort() {
data = ('COM1')
ThermalLib.THLOpenPort(data)
ThermalLib.THLSendBel()
}
function LBTRSHDR( ilosc_pozycji_sprzedazy,ilosc_dodatkowych_linii_tekstu,linia1,linia2,linia3 )
{
var ico = ThermalLib.LBTRSHDR(ilosc_pozycji_sprzedazy,ilosc_dodatkowych_linii_tekstu,linia
,linia2,linia3)
alert(\"LBTRSHDR: \" + ico)
}
function LBTRSLN( numer_linijki,rodzaj_rabatu,opis_rabatu,nazwa_towaru,ilosc,stawka_ptu,cena_jedno
tkowa_brutto,razem_brutto,
kwota_rabatu,opis_rabatu )
{
var ico = ThermalLib.LBTRSLN( numer_linijki,rodzaj_rabatu,opis_rabatu,nazwa_towaru,ilosc,stawka_ptu,cena_jedno
tkowa_brutto,razem_brutto,kwota_rabatu,opis_rabatu )
alert( \"LBTRSLN : \" + ico)
}
function LBTREXIT(rabatu_procentowy,ilosc_dodatkowych_linii_stopki,rodzaj_rabatu,kod_kasy
kasjera,linia1,linia2,linia3,razem_zaplacono,razem_naleznosc,rabat)
{
var ico = ThermalLib.LBTREXIT(rabatu_procentowy,ilosc_dodatkowych_linii_stopki,rodzaj_raba
u,kod_kasy_kasjera,linia1,linia2,linia3,razem_zaplacono,razem_naleznosc,rabat)
alert(\"LBTREXIT : \" + ico)
}
</script>
...
[zastosowanie funkcji (bez kontekstu - fragmenty wycięte ze skryptów)]
...
/* ##### FISKALIZACJA Etap I - Otwarcie portu COM + inicjalizacja fiskalizacji ##### */
echo "<script language='Javascript'>";
echo "OpenPort();";
echo "LBTRSHDR( '0','0','0','0','0' );";
echo "</script>";
/* ######################################################## */
/* ##### FISKALIZACJA Etap II - wysłanie pozycji sprzedaży ############################# */
echo "<script language='Javascript'>";
echo "LBTRSLN( '".$linijka."','0','0','".substr($produkt[0],0,20)."(".$produkt[2].")"."','".$produkt[1]."','".
$produkt[2]."','".$produkt[3]."','".$produkt[4]."','0','0' );";
echo "</script>";
/* ##################################################################### */
/* ##### FISKALIZACJA Etap III - zakończenia ####################### */
echo "<script language='Javascript'>";
echo "LBTREXIT( '0','0','0','1SW','0','0','0','".$laczna_naleznosc."','".$laczna_naleznosc."','0' );";
echo "</script>";
/* ###################################################### */
...
Nie zastanawiałem się jeszce nad tym co z kontrolą błedów ale nawet nie mam pojęcia jak przekazać do php wynik funkcji Javascript :-)
Wszystkie funkcje są dobrze udokumentowany w instrukcji .pdf
Pozdrawiam i zyczę powodzenia
mlattari