[php] printen van labels

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 20:44

HenkS

Da_king alias HenkS

Topicstarter
hallo,

Wij zijn bezig met een order proces, waar op het einde van de produktie straat boeken worden gescand, dan moet de bijbehorende data opgehaald worden, het label geprint worden en dit wordt op de enveloppe geplakt en verstuurd. (zit nog veel meer bij als koppeling met ERP, afmelden order) maar dat is voor nu niet interessant.

Dit is allemaal webbased (het scannen) en gemaakt met php/mysql.
Het scannen gaat goed, de data wordt uit de database gehaald en op dit moment nog getoond op het scherm.

Echter dient dit geprint te worden op een label, en waar ik nu tegenaanloop: ik wil dat het item na het scannen (in feite is dit gewoon een POST in een formulier) geprint wordt (printer zit gewoon aan diezelfde pc vast) ZONDER dat die printpopup te voorschijn komt.

Ik weet dus ook niet zeker of ik in dit topic exact op de goede plek zit. Ik heb alleen flink op google lopen zoeken, en ik begrijp dat zoiets wel mogelijk is door een bepaald activex component (kan deze alleen niet vinden) of door in het register wat aan te passen, alleen hier vind ik ook geen details over terug.

Zijn er mensen die dit wel eens gedaan hebben, printen via de browser door de printpop 'over te slaan' cq te verwijderen. Kan dit dmv javascript of een andere mogelijkheid?

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
Ik heb al wat voor je gevonden maar dit is alleen geschikt voor Windows, dat is de PHP printer class, je moet dan per code een opdracht kunnen invoeren.

PHP Printer (only Win)

Acties:
  • 0 Henk 'm!

  • blokje1
  • Registratie: Juni 2009
  • Laatst online: 19-08-2022
Snel gegoogled en http://www.meadroid.com/scriptx/ schijnt het te kunnen. ActiveX component wat je dan include op je pagina waardoor het op dat moment alleen nog maar en IE werkt.

http://www.meadroid.com/s.../printdoc.asp#html_object

Kost wel geld maar is wel wat je zoekt. Javascript zelf heeft echter geen toegang tot de manier waarop je webbrowser een pagina print.

EDIT:
Wat ik nog wel kan bedenken is dat je in de php code het afhandelt door middel van een postscript pagina op te bouwen en die direct via een netwerk printer verstuurd

Dit dus: http://mac.freshmeat.net/projects/phpprintipp
En de docs: http://www.nongnu.org/phpprintipp/usage#advancedusage


Hoop dat het je lukt en je bevindingen met ons hier verder deelt

[ Voor 33% gewijzigd door blokje1 op 10-06-2009 13:00 ]


Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 20:44

HenkS

Da_king alias HenkS

Topicstarter
bedankt beide, ik ga eens kijken en laat de bevindingen weten

Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 20:44

HenkS

Da_king alias HenkS

Topicstarter
de php print class gaat t volgens mij al niet worden.

als ik printer_open(); aanroep, krijg ik de melding:
Call to undefined function ....

als ik vervolgens dit lees:
http://nl2.php.net/manual/en/printer.installation.php en kijk in de php.ini staat er nergens een printer.dll achtig iets. (windows machine). En als ik het goed begrijp uit deze site, is er ook geen DLL meer voor?

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 19-09 16:12
activex is wat je nodig hebt als het webbased gebeurt.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
djluc schreef op woensdag 10 juni 2009 @ 14:18:
activex is wat je nodig hebt als het webbased gebeurt.
Tenzij je CSS2/3 printing gebruikt, PDF's genereert of zoals TS aangeeft, de printer aan de "webserver" hebt hangen.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Ben ik misschien de enige die vind dat php misschien wel niet de beste platformkeuze is geweest voor deze automatiserings opdracht?

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!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
HenkS schreef op woensdag 10 juni 2009 @ 13:57:
als ik vervolgens dit lees:
http://nl2.php.net/manual/en/printer.installation.php en kijk in de php.ini staat er nergens een printer.dll achtig iets. (windows machine). En als ik het goed begrijp uit deze site, is er ook geen DLL meer voor?
Dat klopt niet helemaal, je moet hem vanaf de source in elkaar draaien, hier staan een Duitse tutorial: Clicky.

Als je een Linux server hebt kan je dit ook doen:
http://www.phpbuilder.com...index.php/t-10100420.html
Sure! You can get PHP to call any external program you want, using (read up on the manual to see which is most appropriate for you) exec(), system(), or passthru(). On linux, the print utility is called "lpr", so

system("lpr $filename");

will do the job. A warning: if $filename is user-supplied, you will want to make sure to use $filename = escapeshellcmd($filename) before you allow $filename to appear in *any* system, exec, or passthru command; otherwise, you have a potential security hole. Read up on these functions in the PHP manual for more info.

HTH,

AC

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Janoz schreef op woensdag 10 juni 2009 @ 15:00:
Ben ik misschien de enige die vind dat php misschien wel niet de beste platformkeuze is geweest voor deze automatiserings opdracht?
Uiteraard, maar in dit stadium (waar alles al klaar is (naar TS beweert)) is het wat lullig en lastig om daar op terug te komen als 't enkel nog het printen van wat labeltjes betreft :P En hoewel tricky, is het wel te doen met wat doorzettingsvermogen.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • JWolters
  • Registratie: Maart 2001
  • Laatst online: 20-09 14:15

JWolters

Killing Me Killing You

Als je een Dymo printer gebruikt kan het via Active-X: http://global.dymo.com/en...ware_Development_Kit.html

Time is my only fear, an enemy of Sand


Acties:
  • 0 Henk 'm!

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 18-09 13:37

sopsop

[v] [;,,;] [v]

Als de printer een netwerkprinter is, dan zou ik het printproces server side triggeren en dus vanaf de webserver printen, ipv vanaf de client. Dan heb je ook nooit problemen als je de clientpc vervangt.

[ Voor 17% gewijzigd door sopsop op 10-06-2009 16:00 ]


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 22:44

MBV

In mijn vorige werkomgeving hadden we een vergelijkbare situatie. Daar werden de opdrachten naar een bestandje weggeschreven, dat door een labelprinter en het ERP-systeem werden uitgevoerd :X

Ik zie 2 oplossingen:
- schrijf m.b.v. PHP postscript/PDF bestanden weg naar een directory op een netwerk-share
- laat een cronjob of client-applicatie alle bestanden uit die map naar een lokale printer sturen, of laat PHP een lpr-commando uitvoeren.

- firefox aanpassen: http://ubuntuforums.org/showthread.php?t=205050

[/houtje-touwtje-ducktape-alert]

Vergeet niet dat als er 2 client-stations komen, je een keuze voor de printer mogelijk moet maken :)

[ Voor 8% gewijzigd door MBV op 10-06-2009 16:04 ]


Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 19-09 16:54

DexterDee

I doubt, therefore I might be

Een andere optie is om een piepklein desktop programmaatje in .NET of Delphi te bouwen die reageert op een url handler. Vervolgens registreer je een nieuwe URL handler, zoals label:// en zorg je ervoor dat PHP een bestandje klaar zet om te printen, om vervolgens de naam (id ofzo) van het bestandje in zo'n link te zetten, bijv label://job1234
Het desktop programmaatje zal automatisch opgestart worden bij kliks op label:// url's en leest de naam uit de url en gaat in een vooringestelde folder op zoek naar die bestandsnaam, opent het bestand, print het uit en sluit zichzelf weer af. Ik heb zoiets wel eens gemaakt in Delphi met een PDF library en dat was appeltje-eitje.

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 20:44

HenkS

Da_king alias HenkS

Topicstarter
Hallo,

bedankt voor alle reacties.

Wij doen dit alles webbased omdat het scannen van documenten ook bij externe leveranciers kan worden gedaan omdat zij eventueel een produktieproces hebben wat wij niet in huis hebben, dan kan verbinding met ons worden gelegd en bij ons de data verwerkt worden. Daarnaast zijn er nog enkele redenen om het webbased te doen. Php is een keus omdat we hier meer zaken in hebben draaien.

Maar goed, misschien is het niet de beste keus voor bepaalde zaken, ik moet het er nu toch mee doen :)

Ik ga toch verder kijken naar activex oplossingen omdat dit nu toch de beste oplossing zou moeten zijn. Al merk ik wel hierbij dat meer mensen (ook via google) roepen dat het het beste met Active x kan, maar niemand zegt met welk activex component of geeft een gerichtere oplossing? Iemand hier misschien?

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 22:44

MBV

Die was al gegeven :X
blokje1 schreef op woensdag 10 juni 2009 @ 12:55:
Snel gegoogled en http://www.meadroid.com/scriptx/ schijnt het te kunnen. ActiveX component wat je dan include op je pagina waardoor het op dat moment alleen nog maar en IE werkt.

[ Voor 4% gewijzigd door MBV op 12-06-2009 10:49 ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 19-09 16:12
DexterDee schreef op vrijdag 12 juni 2009 @ 08:06:
Een andere optie is om een piepklein desktop programmaatje in .NET of Delphi te bouwen die reageert op een url handler. Vervolgens registreer je een nieuwe URL handler, zoals label:// en zorg je ervoor dat PHP een bestandje klaar zet om te printen, om vervolgens de naam (id ofzo) van het bestandje in zo'n link te zetten, bijv label://job1234
Het desktop programmaatje zal automatisch opgestart worden bij kliks op label:// url's en leest de naam uit de url en gaat in een vooringestelde folder op zoek naar die bestandsnaam, opent het bestand, print het uit en sluit zichzelf weer af. Ik heb zoiets wel eens gemaakt in Delphi met een PDF library en dat was appeltje-eitje.
Dit vind ik ook wel zeer stijlvol! Kan je zo'n stukje software bijvoorbeeld automatisch laten installeren als browser plugin? Dus dat je zo'n installatiebalk krijgt in bijvoorbeeld Internet Explorer? Klinkt als een goede oplossing voor diverse zaken die wij doen met drukwerkstraten e.d.

Acties:
  • 0 Henk 'm!

  • Wiebbe
  • Registratie: Februari 2001
  • Laatst online: 05-09 21:41

Wiebbe

<none />

DexterDee schreef op vrijdag 12 juni 2009 @ 08:06:
Een andere optie is om een piepklein desktop programmaatje in .NET of Delphi te bouwen die reageert op een url handler. Vervolgens registreer je een nieuwe URL handler, zoals label:// en zorg je ervoor dat PHP een bestandje klaar zet om te printen, om vervolgens de naam (id ofzo) van het bestandje in zo'n link te zetten, bijv label://job1234
Het desktop programmaatje zal automatisch opgestart worden bij kliks op label:// url's en leest de naam uit de url en gaat in een vooringestelde folder op zoek naar die bestandsnaam, opent het bestand, print het uit en sluit zichzelf weer af. Ik heb zoiets wel eens gemaakt in Delphi met een PDF library en dat was appeltje-eitje.
Ja, maar die url wordt alleen aangeroepen op de client pc. Als ik het goed begrijp moeten de printjes worden gedraaid op de host/server waar ook php op staat?

Oh noes.. No more TreinTijden :(


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 22:44

MBV

Het lijkt er sterk op van niet :)
HenkS schreef op vrijdag 12 juni 2009 @ 10:01:
Wij doen dit alles webbased omdat het scannen van documenten ook bij externe leveranciers kan worden gedaan omdat zij eventueel een produktieproces hebben wat wij niet in huis hebben, dan kan verbinding met ons worden gelegd en bij ons de data verwerkt worden. Daarnaast zijn er nog enkele redenen om het webbased te doen. Php is een keus omdat we hier meer zaken in hebben draaien.
Zie ook de TS:
HenkS schreef op woensdag 10 juni 2009 @ 12:48:
Echter dient dit geprint te worden op een label, en waar ik nu tegenaanloop: ik wil dat het item na het scannen (in feite is dit gewoon een POST in een formulier) geprint wordt (printer zit gewoon aan diezelfde pc vast) ZONDER dat die printpopup te voorschijn komt.
Speciale URL vind ik de mooiste oplossing, maar doet niet veel anders dan een activeX o.i.d. plugin.

[ Voor 8% gewijzigd door MBV op 12-06-2009 17:53 ]

Pagina: 1