Automatisch een bon printen vanuit PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Paul Balen

Paul Balen

12/01/2020 18:01:30
Quote Anchor link
Automatisch een bestelbon printen als erop bevestigen is geklikt.

Probleem:
Ik loop tegen een probleem aan. Misschien bestaat er al een oplossing? Ik zat zelf te denken aan een meta tag die dan binnen een bepaalde tijd een bestand uitvoert waar de print code in verwerkt is. Ik wil printen naar een meta III bonnenprinter onder een Windows 10 Pro, Wamp server. Echter er komt aldoor het schermpje van Windows om de printer te selecteren en dat moet weg. Hopelijk heeft iemand een idee.

Bedoeling:
Het gaat erom dat er een bestelling wordt opgenomen aan de tafel, zodra er op bevestigen is gedrukt moet er bij de bar een bonnetje geprint worden waar dan de bestelling (drinken en eten) op staat. Alles werkt al twee jaar van mijn zelf geschreven kassa programma, echter willen ze nu deze extra optie erbij. Tot heden had ik het zo dat je op de knop printen moest drukken en dan kon je de juiste printer kiezen en dan werd er geprint. Maar die tussenstap van printer kiezen wil ik dus kwijt en de bon gelijk laten printen zonder dat je nog een printer moet kiezen.

Situatie:
Het gaat om een mini camping met restaurant, dus ze hebben twee typen printers aangesloten, een voor de camping (A4 formaat) en een voor restaurant bezoekers (Bonnenprinter) en alles loopt via hetzelfde kassaprogramma, aangezien camping gasten ook het restaurant bezoeken en aan het eind van hun verblijf de rekening betalen van de camping en het restaurant.

De vraag:
Hoe omzeil ik de Windows melding om printer te selecteren vanuit php.
 
PHP hulp

PHP hulp

28/03/2024 22:06:24
 
- Ariën  -
Beheerder

- Ariën -

12/01/2020 18:15:37
Quote Anchor link
Het ligt eraan of je een netwerkprinter hebt, en op welke manier deze bestanden accepteert. Ik lees hier en daar dat sommige printers via FTP bereikbaar zijn, zodat deze de pdf kunnen afdrukken.
 
Paul Balen

Paul Balen

12/01/2020 18:18:44
Quote Anchor link
De A4 printer zit op het netwerk via WiFi en de Meta III via USB direct op de kassa computer. Met een tablet wordt er langs de tafels gelopen. Dus met tablet bestelling opgenomen, bestelling bevestigen, dan dient de usb Meta III bonnenprinter op de kassa computer de bestelling uit te printen.
 
- Ariën  -
Beheerder

- Ariën -

12/01/2020 18:32:02
Quote Anchor link
Tja, PHP blijft een serverside programmeertaal die niet veel met randapparatuur doet omdat het lokaal bij de gebruiker niks kan doen.

Misschien kent de bonnenprinter of de software een API, maar dan moet deze dat wel ondersteunen en een eigen IP-adres hebben.

Persoonlijk vraag ik me af of PHP wel de beste zet is voor een POS-systeem.
 
Paul Balen

Paul Balen

12/01/2020 18:35:45
Quote Anchor link
*quoteknip*

Yep, ik snap je volkomen! Maar ja de gebruikers denken altijd ik wil dit dus het kan, maar andere apparatuur aanschaffen is er niet bij. Dus ik moet het doen met de bestaande configuratie. In het ergste geval moeten ze toch op een knopje drukken om de Meta III printer te kiezen.... Heb zelf al zitten puzzelen en proberen met mijn eigen label printer om die direct aan te sturen vanuit Php, tot heden geen succes. Zelfs met een meta tag komt Windows met Welke printer?????

Edit:
Het integraal quoten van het eerst voorgaande bericht is niet nodig.
Gewijzigd op 13/01/2020 10:07:57 door - Ariën -
 
Ivo P

Ivo P

13/01/2020 10:02:19
Quote Anchor link
Het moet kunnen, als je de printer direct vanuit php aanspreekt.

Bestaat er iets als CUPS onder Windows?
Via Linux kan dat in elk geval

Toevoeging op 13/01/2020 10:04:02:

gaat in mijn geval om netwerk printers. Mogelijk maakt dat het gemakkelijker
 
- Ariën  -
Beheerder

- Ariën -

13/01/2020 10:12:29
Quote Anchor link
De functie om iets af te drukken gaat lokaal via Windows zelf. Daar kan je met PHP geen invloed op uitoefenen.

Richt je eens op commandline binairies die eenvoudig iets naar je vast ingestelde printer kan sturen.

Als je de Server editie van Windows hebt, zou het volgens mij wel kunnen:
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/print-command-reference
Gewijzigd op 13/01/2020 10:14:46 door - Ariën -
 
Ward van der Put
Moderator

Ward van der Put

13/01/2020 10:28:48
Quote Anchor link
Voor ‘silent printing’ kun je Google Chrome met de opstartoptie --kiosk-printing in kiosk-modus laten printen:

https://www.websitesupport.info/hc/en-us/articles/360024709193-Bypass-the-Print-Dialog-Box-in-Chrome
 
Paul Balen

Paul Balen

13/01/2020 15:59:56
Quote Anchor link
CUPS gaat niet werken voor mij, heb dat gisteren al door gelezen en gekeken of dit onder Windows kan met een USB bonnenprinter.

Chrome kiosk gaat ook niet, wel een goeie optie maar er zijn, lees er moeten, twee printers in Windows geconfigureerd zijn, 1(Netwerk/ Wifi) om rekeningen op A4 uit te printen en een voor de kleine kassa bonnetjes(USB).

De command line opties ga ik nog eens uit proberen, eerst zien of ik een fictief ip adres aan een usb poort kan plakken....

Zal me daar morgen verder in verdiepen, was vandaag al vanaf vanochtend 05:00uur tot 15:15 uur aan het werk voor de baas....
Gewijzigd op 13/01/2020 16:00:16 door Paul Balen
 
- Ariën  -
Beheerder

- Ariën -

13/01/2020 16:02:50
Quote Anchor link
Ik ben alleen bang dat Windows 10 Pro die commandline-opdrachten niet kent. Met Windows Server heb je meer vrijheid in server-zaken.
 
Paul Balen

Paul Balen

13/01/2020 16:17:58
Quote Anchor link
Dat is dus wat ik van de week wil gaan proberen, en kijken welke wel of niet werken onder Windows 10 Pro. In het verleden regelmatig tegen gekomen dat het voor een Windows Server versie systeem is en dat sommige van de commando's ook op de "lichtere" versie van Windows werken. Kwestie van uit proberen.... nee heb ik en een ja kan ik misschien krijgen/vinden :)
 
Aad B

Aad B

13/01/2020 17:14:15
Quote Anchor link
een bevriende horeca ondernemer vertelde aan mij dat hij werkt met de service van HP, zijn kassa programma maakt een pdf en emailt deze naar iets van deprintervancafe123@hpprintservice punt com en dat is een emailadres dat je gratis kan aanmaken bij HP mits een een recente HP printer hebt. HP zorgt voor de rest, stuurt de printer aan. Ik dacht ook dat concurrenten printer makers ook al zo'n service hebben.
Gewijzigd op 13/01/2020 17:15:35 door Aad B
 
Marthijn Buijs

Marthijn Buijs

13/01/2020 20:28:59
Quote Anchor link
- Ariën - op 13/01/2020 16:02:50:
Ik ben alleen bang dat Windows 10 Pro die commandline-opdrachten niet kent. Met Windows Server heb je meer vrijheid in server-zaken.


Hebben we het hier over de normale Opdrachtpromt, dan zou ik eens kijken of PowerShell zoiets heeft, lijkt me stug als dat niet zo is.
 
Paul Balen

Paul Balen

16/01/2020 18:03:42
Quote Anchor link
Als eerste bedankt voor de reacties en het meedenken.
Ik heb nu een aantal handleidingen weten te vinden met alle commando's die ik naar de metaspace t3 kan sturen. Dat wordt nog wel een puzzeltje heb ik gezien.
Daarnaast heb ik drivers gevonden om de printer rechtstreeks aan te sturen vanaf tablet, android en/of IOS, smarttelefoon etc. Net de vraag gesteld aan de eigenaren van de printer of er een netwerk poort op zit. Dit model printer heeft of een seriële extra ingang of een netwerkpoort naast de USB aansluiting. Misschien zelfs het geluk dat ik hem via draadloos (WiFi) netwerk aan kan sturen vanuit een tablet of smarttelefoon.
Ga hier verder mee aan de slag en zie of ik dan zonder al te veel omwegen direct kan printen zonder dat Windows er tussen door komt om een printer te kiezen en dan pas te kunnen printen.
Nogmaals bedankt voor de vele tips en het meedenken, met de gegeven info van jullie allen kom ik denk ik nu wel een stap dichter bij wat ik wil gaan doen.
 
Thomas van den Heuvel

Thomas van den Heuvel

17/01/2020 14:02:16
Quote Anchor link
Kun je niet gewoon via sockets een printer rechtstreeks via het netwerk instrueren? :/
 
Ivo P

Ivo P

17/01/2020 15:03:00
Quote Anchor link
De (netwerk)printers die ik gebruik voor een dergelijke toepassing, kan ik rechtstreeks benadere via poort 9100 en daar gaat dan gewoon een pdf heen.
CUPS zit daar nog wel tussen, maar ook zonder zou dat moeten kunnen.

Voor de labelprinter heb ik het taaltje van die printer uitgezocht. En daar stuur ik dan een lap ASCII naar toe met de juiste codes voor opmaak en posities en uiteraard de tekst.

Ik denk dat het een stuk ingewikkelder wordt als je de clients het printen laat doen. Want dan moet de client (tablet) de printer kunnen benaderen en weten wat voor merk printer het is ivm de drivers.

PHP kan wel vanaf de server met netwerk-apparatuur praten. (curl etc?)
Via usb wordt het lastiger.
Of je moet via de command line dingen aantrappen.
 
Paul Balen

Paul Balen

08/02/2020 07:45:27
Quote Anchor link
Na flink wat uurtjes puzzelen en de printer codes bestudeerd te hebben , waar voor de metaspace totaal niet uit te komen is...ben ik toch maar voor een "good-old-fashion" methode gegaan.

Opgelost met de volgende stappen:
Naast de tabel waar bestellingen in weg geschreven worden een tweede tabel toegevoegd met printbestelling.
Op het hoofd scherm staat bovenin een knop Alles is geprint die groen is als er niets in de tabel printbestelling staat.
Is er een bestelling opgenomen dan komt deze zowel in de tabel bestellingen als in de tabel printbestelling.
De knop Alles is geprint verandert van groen naar rood met de tekst Print Bestelling
Klik je op de knop dan komt er een scherm die met body onload=javascript:window.print(); return false;
Gelijk het Windows printer scherm laat zien om de juiste printer te kiezen.
Zodra deze is afgedrukt dan wordt de tabel printbestelling geleegd en verandert de knop op het hoofd scherm weer van rood naar groen.

Deze methode werkt nu voor mij, misschien dat er nog tips en goede ideeën zijn dan hoor ik het graag!

In ieder geval een ieder hartelijk bedankt voor het meedenken hier op dit forum.
Gewijzigd op 08/02/2020 07:48:23 door Paul Balen
 
Veur Heur

Veur Heur

08/02/2020 11:23:51
Quote Anchor link
Voor een klant heb ik een systeem geschreven op basis van fPDF dat PDF bestanden genereert, die worden middels FTP lokaal gehaald en daar m.b.v. een gratis programmaatje (PDFtoPrinter.exe) naar de printer gestuurd. Beetje omslachtig, maar werkt feilloos.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.