WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Kvittoskrivare på klientsidan (Javascript?) (https://www.wn.se/forum/showthread.php?t=1038492)

qson 2009-10-11 11:35

Kvittoskrivare på klientsidan (Javascript?)
 
Hej,
Behöver kunna skriva ut kvitton på en kvittoskrivare från Javascript. Mitt server-skript skickar en sida med "kvittodata" till klienten som sedan skall kunna skriva ut detta.
Har PHP-kod som gör detta, men behöver skriva ut från klienten och ej servern...
Alternativet är att installera en "webbserver" och från klienten anropa "localhost:8080/print.php?data=xxx" men känns overkill.

Alltså:
* Alt1 (javascript): Någon som vet om det finns möjlighet till RS232-kommunikation från firefox eller på något sätt skicka "rå" data till skrivaren.

* Alt2 (lokal webbserver): Vilken webbserver bör jag använda? Den skall klara PHP och vara "lättkörd". Läste om nanoweb (skriven i PHP) och sen är det ju lighttpd. Förslag?

Hur tänka `?

Lindahl 2009-10-11 12:00

Jag skrev en egen dll-fil som jag sedan anropade med Javascript. Funkar perfekt. Då kan man ju även skriva ut grafik som loggor med mera.

qson 2009-10-11 12:04

Citat:

Ursprungligen postat av Lindahl (Inlägg 20325846)
Jag skrev en egen dll-fil som jag sedan anropade med Javascript. Funkar perfekt. Då kan man ju även skriva ut grafik som loggor med mera.

Hur anropar jag en dll från Javascript?

Lindahl 2009-10-11 12:32

Såhär typ:
Kod:

       
function print() {
        p = new ActiveXObject("MyDLL.MyPrinter");
        p.Print();/* Din funktion i dll-filen som genererar utskriften, här kan du skicka med parametrar */
}


qson 2009-10-11 12:37

Citat:

Ursprungligen postat av Lindahl (Inlägg 20325851)
Såhär typ:
Kod:

       
function print() {
        p = new ActiveXObject("MyDLL.MyPrinter");
        p.Print();/* Din funktion i dll-filen som genererar utskriften, här kan du skicka med parametrar */
}


Ah, den biten har jag varit inne på... Har t.o.m. nästan fått det att funka. Problemet är att detta kräver IE. Jag (och klienten) kör FF.

Har kollat på XPCOM-API:n på dev.mozilla.org men verkar inte finnas något av värde där. Har även läst om att aktivera ActiveX i firefox men det verkar omständigt. Kompilera osv...

Fler förslag?

Lindahl 2009-10-11 12:39

Då är nog det enda att du genererar en sida i din webbläsare, och sedan bara använder skriv-ut-funktionen i webbläsaren. Utan ActiveX är det omöjligt skulle jag nog vilja påstå.

qson 2009-10-11 12:46

Citat:

Ursprungligen postat av Lindahl (Inlägg 20325855)
Då är nog det enda att du genererar en sida i din webbläsare, och sedan bara använder skriv-ut-funktionen i webbläsaren. Utan ActiveX är det omöjligt skulle jag nog vilja påstå.

Jo, så funkar mitt system idag. Problemet är skrivare med RS232 som går så fruktansvärt långsamt eftersom firefox inte skickar text utan "raster" eller hur man ska säga. Tar 5-10 sek att skriva ut kvitto som normalt borde tar < 1s. Överföringshastigheten är problemet här..

Jobbar vidare på detta...

Förslag på Alt2: Vilken "lättvikts"-webbserver skall man använda då den enbart används för utskrift av kvitton? Apache känns overkill. Lighttpd och nanoweb har jag aldrig använt...

Dennis Holm 2009-10-11 12:58

det var ganska länge sedan jag använde lighttpd men den är extremt liten och om jag inte minns fel så var den ganska enkel att komma igång med.

jonny 2009-10-11 20:49

Kan du inte köra en javaklient då, eller skiter det sig också? Det var länge sedan jag höll på med java på klientsidan; men om du fipplar lite med säkerhetsinställningarna borde du kunna skriva ut från en javaapplet.

Alternativt kan du ju ha ett klientprogram i gång på datorn som kommunicerar direkt med servern och skriver ut kvitton från serverns "kvittokö" eller något. Också ett alternativ.

oddholst 2009-10-12 13:19

Jag har löst det så att jag kopplat skrivaren till serieporten på datorn, resp en seriell printerserver, delat ut skrivaren på nätverket och sedan låter jag webbservern (som finns på mitt LAN, WAMP) skriva ut på den via en egen php-klass som sköter all utskrift, inkl lagring av bilder i skrivaren. Det fungerar tyvärr bara med webbserver i windowsmiljö, men det går säkert att lösa ändå.

Men om jag förstått dig rätt så är inte denna lösning intressant för dig?


Alla tider är GMT +2. Klockan är nu 09:21.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson