[php icm ???] Printer geautomatiseerd aansturen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • sanzut
  • Registratie: December 2006
  • Laatst online: 18:59

sanzut

It's always christmas time

Topicstarter
Hoi,

Voor een web-toepassing wil ik geautomatiseerd, zonder user-input of user-confirmation een printer aansturen op de Client.

ik ben er al achter dat ik met PHP EXEC wel een printer aan kan sturen, maar dan zou de printer aan de server gekoppeld moeten zijn, dit is in eerste instantie niet mogelijk. Als er echt geen snellere/makkelijkere oplossing is dan zou het een optie zijn om de client uit te rusten met CLI-PHP.

Zijn er applicaties die bijvoorbeeld elke *-seconden kijkt of er een PDF-file is om te printen, of die eventueel op basis van een XML of TXT file een template vult met af te drukken data.
Als we dit zelf zouden moeten ontwikkelen, welke taal voor op de client zou hier het meest geschikt voor zijn?

Ik hoop echt dat jullie me kunnen helpen met dit probleem.

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Dat kan gelukkig niet.

Maak jij anders even een webpagina die als je hem bezoekt vijfhonderd zwarte A4'tjes print d:)b

[ Voor 8% gewijzigd door CodeCaster op 14-12-2009 11:43 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

Verwijderd

CodeCaster schreef op maandag 14 december 2009 @ 11:43:
Dat kan gelukkig niet.

Maak jij anders even een webpagina die als je hem bezoekt vijfhonderd zwarte A4'tjes print d:)b
Je zou natuurlijk een kleine apache+php server op de client kunnen installeren en vanaf de server client-ip aanroepen en hem via php laten printen. Ligt er wel heel erg aan in watvoor omgeving je werkt.

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Verwijderd schreef op maandag 14 december 2009 @ 11:53:
[...]

Je zou natuurlijk een kleine apache+php server op de client kunnen installeren en vanaf de server client-ip aanroepen en hem via php laten printen. Ligt er wel heel erg aan in watvoor omgeving je werkt.
Ja, je zou ook via AJAX een WCF-service over VPN bereikbaar kunnen maken die via RPC een taak aanmaakt in de scheduler van de client-PC.

Of je gebruikt zooi waar het voor is, schrijf gewoon een kleine C#-applicatie die de XML periodiek uitleest en de PDF uitprint.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Right tool for the right job. Php lijkt me de minst geschikte taal voor een applicatie op de client. Het dwingen tot het installeren van een complete webserver lijkt mij daarnaast al helemaal een huge no-go.

Voor de client valt te denken aan C(# / ++) of Java of VB of wat dan ook. Alle van deze talen heeft de mogelijkheid om zelf contact te leggen met een sorver om op die manier mogelijk te printen opdrachten op te halen.

Een andere mogelijkheid is met een browser plugin. Voor IE kun je activeX gebruiken en voor firefox zijn ook wel plugins te schrijven die je vervolgens vanuit je webpagina aan kunt roepen.

Eventueel kun je nog een java applet maken en zorgen dat je genoeg rechten van de gebruiker krijgt zodat dit applet mag printen. Bij een java applet is het ook mogelijk om met de rest van je pagina te communiceren.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • sanzut
  • Registratie: December 2006
  • Laatst online: 18:59

sanzut

It's always christmas time

Topicstarter
Bedankt voor jullie info, ik ga eens kijken naar een eenvoudige client app.

Acties:
  • 0 Henk 'm!

  • XiniX88
  • Registratie: December 2006
  • Laatst online: 19:30
lpr -P "printerName" document.pdf

Als snelle handige manier... Ik weet dat het verre van netjes is, en het op een Linux server moet, je waarschijnlijk 1 rule moet toevoegen aan sudo (geen idee of LPR op user niveau zomaar mag), maar 1 regel code in PHP lijkt mij toch echt de meest snelle manier, en het doet ook nog eens wat het moet doen (printen).

Om er even bij te voegen, de printer moet dan uiteraard wel als netwerkprinter staan aangesloten, aangezien het niet lokaal is. (Om het in jip en janneke taal uit te drukken, de printer die elders staat, moet worden geshared, en op de PC waar PHP draait als netwerkprinter worden toegevoegd).

En anders het allemaal naar een mapje laten gaan op de server waar het wel staat,

daar in een loopje de directory laten scannen:
while(true)
foreach($files as $file)
{
'lpr $file'
'rm $file'
}

[ Voor 42% gewijzigd door XiniX88 op 14-12-2009 12:32 ]


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
XiniX88 schreef op maandag 14 december 2009 @ 12:26:
lpr -P "printerName" document.pdf

Als snelle handige manier... Ik weet dat het verre van netjes is, en het op een Linux server moet, je waarschijnlijk 1 rule moet toevoegen aan sudo (geen idee of LPR op user niveau zomaar mag), maar 1 regel code in PHP lijkt mij toch echt de meest snelle manier, en het doet ook nog eens wat het moet doen (printen).
Hij wil op de client printen middels een server-side script en niet op de server.

Acties:
  • 0 Henk 'm!

  • XiniX88
  • Registratie: December 2006
  • Laatst online: 19:30
HuHu schreef op maandag 14 december 2009 @ 12:29:
[...]

Hij wil op de client printen middels een server-side script en niet op de server.
Ik edit mijn post altijd meerdere keren, ik vergat er inderdaad bij te melden dat men de printer die elders staat, ook kan aanmelden als netwerkprinter lokaal.

Dan staat de printer dus elders, maar kan lokaal worden aangestuurd, dit kan bijvoorbeeld per OpenVPN (als de printer echt in verweggistan staat) echter moet de netwerkprinter sowieso geshared worden, dus waarom kan die dan niet lokaal worden toegevoegd?

(jammer dat ik maar 3 minuten had om mijn andere bericht te editten, maar je hebt volkomen gelijk).

[ Voor 13% gewijzigd door XiniX88 op 14-12-2009 12:34 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
XiniX88 schreef op maandag 14 december 2009 @ 12:31:
[...]
Ik edit mijn post altijd meerdere keren,
offtopic:
Misschien is het dan handig om je post nog eens goed door te lezen voordat je je bericht verstuurt ;)
ik vergat er inderdaad bij te melden dat men de printer die elders staat, ook kan aanmelden als netwerkprinter lokaal.

Dan staat de printer dus elders, maar kan lokaal worden aangestuurd, dit kan bijvoorbeeld per OpenVPN (als de printer echt in verweggistan staat) echter moet de netwerkprinter sowieso geshared worden, dus waarom kan die dan niet lokaal worden toegevoegd?

(jammer dat ik maar 3 minuten had om mijn andere bericht te editten, maar je hebt volkomen gelijk).
Maar dat is nogal een bewerkelijke operatie. In een intranet zou dat misschien nog wel redelijk werken, dan kun je immers gewoon aan de hand van de client bepalen op welke printer er geprint word.

Maar over het internet zou ik het niet echt als optie zien. Immers ga je niet alle gebruikers verplichten om hun printer via een VPN te sharen met de server.

Zoals al gezegd zul je gewoon een applicatie op de client moeten hebben die genoeg rechten heeft om te kunne printen. Dan kan via een Browser plugin, een Java Applet die genoeg rechten heeft, of een losse applicatie/service die op een of andere manier met de server communiceert. ( Misschien ook wel met Flash, maar dat weet ik niet zeker )

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • XiniX88
  • Registratie: December 2006
  • Laatst online: 19:30
@Woy
Voor een web-toepassing wil ik geautomatiseerd, zonder user-input of user-confirmation een printer aansturen op de Client..
Staat enkelvaut, vandaar dat ik er vanuit ging dat het om 1 printer gaat. Om daar dan complete scripts voor op te zetten is misschien wat zonde van de tijd. Mijn oplossing verdient inderdaad niet de schoonheidsprijs, maar eigenlijk missen er teveel gegevens om een goede oplossing te geven.

Meerdere locaties met printers via OpenVPN lijkt me inderdaad ook geen goede, maar voor dit soort dingen zijn weer andere hele mooie oplossingen.

Edit: Ik zie nu net dat je dit ook kan opvatten dat iedereen die die server bezoekt de "Client" is, en dus op haar eigen printer moet kunnen printen via een web app. Ik vatte het op als 1 Client PC + printer, die via een server moet worden aangestuurd.

offtopic:
Inderdaad moet ik eerst lezen en dan posten, het kwam allemaal wat laat in me op dat ik de kern van mijn verhaal niet opschreef, en ook NU moet ik weer editten, amper geslapen vanacht, denk dat ik maar even niet reageer op andere topics vandaag ;)


@Hieronder (ja ik had geen zin weer een nieuwe post te maken)

Als een website je voor interface is, en je maar naar 1 locatie hoeft te printen... Heb je alleen vanaf die webserver naar je printer een verbinding nodig (iets wat sowieso nodig is, of vanaf ELKE client naar de printer of van ELKE client naar de server die doorverwijst naar de printer)

Iig succes! (ben toch blij dat ik wel goed opvatte dat het om 1 printer ging)

[ Voor 36% gewijzigd door XiniX88 op 14-12-2009 13:13 ]


Acties:
  • 0 Henk 'm!

  • sanzut
  • Registratie: December 2006
  • Laatst online: 18:59

sanzut

It's always christmas time

Topicstarter
Excuses, het gaat over 1 enkele printer op locatie, maar waarbij de applicatie wel op meerdere locaties gebruikt wordt. VPN is in dit geval geen optie, dus ik ga even kijken wat de mogelijkheden zijn met een client applicatie.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 23:10
Wij hebben een lokale Apache draaien waar we middels post requests prints op kunnen maken. Dat doen we middels een beveiligde verbinding om te zorgen dat niet iedereen gaat printen, dat is uiteraard niet de bedoeling.

edit: Te snel verzonden. Waar we tevens naar hebben gekeken is een simpel printservertje op locatie wat je aan kan sturen. Dan zou je het ook op wat meer locaties uit kunnen rollen, alleen een portmapping is dan nodig wat vaak nog wel te regelen is.

[ Voor 36% gewijzigd door djluc op 14-12-2009 15:44 ]


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Als je niks toe te voegen hebt, post dan niks

[ Voor 85% gewijzigd door Woy op 14-12-2009 19:26 ]


Acties:
  • 0 Henk 'm!

  • sanzut
  • Registratie: December 2006
  • Laatst online: 18:59

sanzut

It's always christmas time

Topicstarter
djluc, hoe bedoel je? Dat je als user inlogt op een webinterface, om daar je file te uploaden, en deze vervolgens uit een van de printers rolt?

Acties:
  • 0 Henk 'm!

  • ShitHappens
  • Registratie: Juli 2008
  • Laatst online: 16-09 23:49
sanzut schreef op maandag 14 december 2009 @ 19:37:
djluc, hoe bedoel je? Dat je als user inlogt op een webinterface, om daar je file te uploaden, en deze vervolgens uit een van de printers rolt?
Dit klinkt heel erg als Maggy, alleen daarin moet je wel op OK klikken. Tenzij er maar 1 printer gekozen kan worden, dan gaat het vanzelf. Wordt op veel scholen ed gebruikt om printkosten te regelen. Maar of dit helemaal in dit specifiek geval de bedoeling is weet ik niet zeker.
http://www.aenova.nl/maggy.html

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 23:13

orf

Met JavaScript embedded in een PDF kun je printen. Met óf zonder dialog.
Wij gebruiken dat voor een labelprinter. Hierbij wordt de PDF in een iframe geladen en direct geprint. Met PHP is de PDF eenvoudig te genereren.

Hier een voorbeeld: http://www.fpdf.org/en/script/ex36.pdf
Hier het script: http://www.fpdf.org/en/script/script36.php

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 23:10
sanzut schreef op maandag 14 december 2009 @ 19:37:
djluc, hoe bedoel je? Dat je als user inlogt op een webinterface, om daar je file te uploaden, en deze vervolgens uit een van de printers rolt?
Nee, we posten gewoon automatisch achter de schermen de print bestanden. Eventueel met een beveiligingscode als we geen vpn verbinding hebben.
orf schreef op maandag 14 december 2009 @ 19:51:
Met JavaScript embedded in een PDF kun je printen. Met óf zonder dialog.
Wij gebruiken dat voor een labelprinter. Hierbij wordt de PDF in een iframe geladen en direct geprint. Met PHP is de PDF eenvoudig te genereren.

Hier een voorbeeld: http://www.fpdf.org/en/script/ex36.pdf
Hier het script: http://www.fpdf.org/en/script/script36.php
Hier is verder weinig te zien betreft dit printje, er gebeurt helemaal niets. Recente versie van PDF reader geïnstalleerd op apple.

[ Voor 42% gewijzigd door djluc op 14-12-2009 19:58 ]


Acties:
  • 0 Henk 'm!

  • sanzut
  • Registratie: December 2006
  • Laatst online: 18:59

sanzut

It's always christmas time

Topicstarter
orf schreef op maandag 14 december 2009 @ 19:51:
Met JavaScript embedded in een PDF kun je printen. Met óf zonder dialog.
Wij gebruiken dat voor een labelprinter. Hierbij wordt de PDF in een iframe geladen en direct geprint. Met PHP is de PDF eenvoudig te genereren.

Hier een voorbeeld: http://www.fpdf.org/en/script/ex36.pdf
Hier het script: http://www.fpdf.org/en/script/script36.php
Hmm dit werkt inderdaad prima. Dit behoeft nog wat getest, maar is waarschijnlijk wel the way to go... Thnx
Pagina: 1