Gå til innhold

Printe kvittering automatisk med PHP (plugin?)


Anbefalte innlegg

Videoannonse
Annonse

Printerfunksjonen kommuniserer direkte med en printer som er installert på serveren PHP koden kjører på. Og fungerer kun på Windows.

 

PHP er et serverside språk og kan ikke instruere klienten om å gjøre noe bortsett fra å sende HTML-koder. Det er da opp til klienten å gjøre noe med det. Det mest vanlige her er å sende JavaScript-kode til klienten som åpner utskriftsvinduet, men brukeren må aktivt vente på vinduet og deretter trykke på print for å få ut kvitteringen.

 

Det eg gjorde når eg lagde noe tilsvarende var å lage et lite klientprogram som kjørte utenom nettleseren og direkte på en kassemaskin, med tilkoblet skriver. Programmet koblet seg så til samme database som webløsningen, sjekket en tabell etter nye utskriftsjobber og printet ut kvitteringen når det dukket opp ei ny rad. Fungerte veldig bra.

  • Liker 1
Lenke til kommentar

Det eg gjorde når eg lagde noe tilsvarende var å lage et lite klientprogram som kjørte utenom nettleseren og direkte på en kassemaskin, med tilkoblet skriver. Programmet koblet seg så til samme database som webløsningen, sjekket en tabell etter nye utskriftsjobber og printet ut kvitteringen når det dukket opp ei ny rad. Fungerte veldig bra.

 

Noe slikt hadde vært genialt, men burde vel være et program skrevet i C? Noe som jeg ikke har jobbet spesielt med (testet enkel kode og kompilering for noen år tilbake, men...). Om du har noen lenker eller lignende å dele, hadde det vært kjekt :-) Om ikke får jeg vel bare google litt fremover.

Lenke til kommentar

Generering av PDF er ikke noe problem. Men må fortsatt få utskriften til å gå helt automatisk uten form for aktivitet fra brukeren.

 

Når f.eks. en ordre er ferdig, så ønsker jeg at en kvitteringsskriver (evt. vanlig skriver) skal pushe ut kvitteringen av seg selv :-)

Lenke til kommentar

Eg har hverken program eller kode lenger. Dette er nærmere 7-8 år siden :)

 

Programmet ble først laget i VB6(gud forby), deretter konvertert til VB.Net. Siste versjon skulle ha kommet i C#, men eg sluttet før den ble klar.

 

Teorien bak en slik løsning er relativt enkel:

- Systemet lager ei rad i en tabell for utskriftsjobber, som henviser til en ordre/kvittering.

- Enten kan klienten sjekke regelmessig etter nye rader i tabellen, eller så kan du lage trigger.

- Ved ny rad så slår klienten opp ordreinformasjonen og lager en kvittering etter eget ønske.

- Kvitteringen skrives ut på definert printer.

- Ny rad merkes som ferdig printet.

 

Dette kan da evnt utvides etter behov. For eks kan ei kolonne i tabellen for utskriftsjobber instruere hvilke lokasjon som skal brukes, hvilken type utskrift det er(merkelapp, kvittering, osv). Eller så kan den inneholde selger, og så kobles innlogget bruker på kassemaskinen opp mot bruker hvorpå utskriften kommer der brukeren er. Osv.

Lenke til kommentar

Snakker vi om hjemme hos en bruker eller på feks en kasse?

Hvis du mener at noe skal printes ut automatisk hjemme hos noen så kan du gi deg om den tanken med en gang, ingen liker sånt, pluss at det er vanskelig å få til (må vel inn med noe eget program på klienten) siden du må velge riktig printer osv automatisk.

Lenke til kommentar

Snakker vi om hjemme hos en bruker eller på feks en kasse?

Hvis du mener at noe skal printes ut automatisk hjemme hos noen så kan du gi deg om den tanken med en gang, ingen liker sånt, pluss at det er vanskelig å få til (må vel inn med noe eget program på klienten) siden du må velge riktig printer osv automatisk.

 

Slik som det er diskutert i tråden, er det ønskelig f.eks. med en programsnutt på klienten ja, som leser databasen og skriver ut nye rader på f.eks. standardskriver. Dette tilsier da at du må ha en dedikert PC (kasse) :-)

Lenke til kommentar

Ikke nødvendigvis. Kvitteringsskriveren kan være nettverksbasert og "klient"-programvaren kan være en kode som kjører på en server et sted med nettverkskontakt med skriveren. Da står man og fritt til å bytte ut, oppgradere eller flytte på kasser uten å ta hensyn til printeren.

Lenke til kommentar

E-post bør unngås da det kan være tregt, e-posten kan "forsvinne" i systemet og det er lett å både snoke og kopiere det som evnt går til printeren. Kvitteringer er ikke akkurat sensitive, men på et eller annet tidspunkt vil man kanskje utvide med gavekort, rabattkort osv, og da er det dumt om en eller annen finner en lur måte å få en kopi av alle disse på :)

 

For å ikke snakke om muligheten for at det plutselig kommer ut spam i stede for kvitteringen man venter på :)

Lenke til kommentar

Er dette overhode mulig? Jeg trodde det var et eller annet som blokkerte at man tvinger skriveren til å printe ut noe. Ellers finner jeg det rart at det ikke er vanlig i "hackermiljøer" å leke seg med.

 

Jeg har i allefall aldri vært borti en side som har denne funksjonen.

Lenke til kommentar
Er dette overhode mulig?

Trådstarter nevnte såvidt POS og med det mener han sannsynligvis at han ønsker å selge billetter fra en fysisk lokasjon. I det han registrerer kjøpet og trykker «Ok», så skal det printes ut en kvitering man kan gi til kjøperen. Selvfølgelig er det ikke mulig å servere noe til en nettleser som får den til å printe ut noe automatisk. Kluet er å ha en applikasjon kjørende på en dedikert maskin som til en hver tid sjekker om det finnes kviteringer som ikke er blitt skrevet ut og eventuell skrive disse ut.

Endret av Jonas
Lenke til kommentar
Er dette overhode mulig?

Trådstarter nevnte såvidt POS og med det mener han sannsynligvis at han ønsker å selge billetter fra en fysisk lokasjon. I det han registrerer kjøpet og trykker «Ok», så skal det printes ut en kvitering man kan gi til kjøperen. Selvfølgelig er det ikke mulig å servere noe til en nettleser som får den til å printe ut noe automatisk. Kluet er å ha en applikasjon kjørende på en dedikert maskin som til en hver tid sjekker om det finnes kviteringer som ikke er blitt skrevet ut og eventuell skrive disse ut.

Da henger jeg med, men jeg skjønner virkelig ikke hvorfor han skulle ha denne applikasjonen i PHP. Med C# er det vel bare å skaffe seg riktig .dll og kjøre på? Mye enklere.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...