php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.10.2007, 11:21  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard Drucken aus PHP heraus...

Hallo.

Folgendes Problem: Ich muss beim Client ein Formular (ggf. mehrseitig) drucken. Dies kann eine HTML-Seite, eine PDF oder von mir aus auch ein Bild (z.B. JPG) sein. Diesbezüglich bin ich für alles offen.

Die Problematik ist aber das Drucken, denn ich möchte nicht, dass der Benutzer über Datei->Drucken den Druckvorgang selber starten muss, sondern dass dies per Skript erledigt wird.

Ich habe über die Board-Suche javascript:window.print() gefunden, aber so ganz sinnig ist das nicht, denn damit druckt man (wenn ich das richtig verstanden habe) nur die aktuelle Seite und darauf sollte nach Möglichkeit kein "Hier klicken, um zu drucken"-Link erscheinen, denn das sieht auf einem Formular irgendwie doof aus.

Da fällt mir gerade ein, dass man das zu druckende Formular auch in einem separaten Fenster öffnen und mit onload() direkt den Drucken-Dialog anzeigen lassen könnte.
Dass dieser Dialog kommt und man nicht direkt den Drucker ansteuert, macht Sinn und wäre akzeptabel, denn so könnte der Benutzer bspw. noch den richtigen Drucker auswählen.

Klasse, somit habe ich mir schon selber eine mögliche Antwort gegeben, wie es klappen könnte
Aber vielleicht stand ja einer von Euch schon mal vor diesem Problem. Deshalb frage ich nun trotzdem mal nach...

cya

P.S.:
Die Lösung muss flexibel beim Betriebssystem sein. Server und Client dürfen also sowohl unter Windows als auch unter Linux laufen...
vollkommenegal ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.10.2007, 11:58  
Neuer Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 5
gimp
Standard

Klasse: Frage und Antwort in einem

Sofern Du da an einer reinen Inter- / Extranet- Lösung rumprökelst ist Dein Weg der einzig mögliche (imho).
Evtl. wäre es mit einem dynamisch generiertem PDF noch ein Tick eleganter - im Endeffekt aber das gleiche.


Für den Fall dass Du eine Intranet-Lösung baust wäre zu überlegen, ob Du
den Druckjob nicht direkt vom Server aus anschmeisst. Das lässt sich über
die Shell relativ flexibel erledigen, sofern Du Netwerkseitig an die
Printserver rankommst. Wenn, dann stellt das allerdings weitere
Anforderungen an das WEB-GUI, da Du die zur Verfügung stehenden
Drucker erkennen und zur Auswahl bringen musst.

Grüsseken
gimp
gimp ist offline   Mit Zitat antworten
Alt 19.10.2007, 12:06  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

Zitat:
Zitat von gimp
Klasse: Frage und Antwort in einem
Jepp, ich bin auch begeistert.

Zitat:
Zitat von gimp
Evtl. wäre es mit einem dynamisch generiertem
PDF noch ein Tick eleganter - im Endeffekt aber das gleiche.
Genau, ob nun als HTML oder PDf; das Druckproblem bleibt.

Zitat:
Zitat von gimp
Für den Fall dass Du eine Intranet-Lösung baust wäre zu überlegen, ob Du den Druckjob nicht direkt vom Server aus anschmeisst.
Es ist zwar eine Intranet-Lösung, aber Server und Client(s) stehen weit auseinander. Das könnte ein Kabelproblem geben.

Zitat:
Zitat von gimp
über die Shell relativ flexibel erledigen
Unter Windows (also Kommandozeile/Shell) kann man aber bspw. keinen USB-Drucker ansteuern. Oder?

cya
vollkommenegal ist offline   Mit Zitat antworten
Alt 19.10.2007, 12:22  
Neuer Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 5
gimp
Standard

Zitat:
Es ist zwar eine Intranet-Lösung, aber Server und Client(s) stehen weit auseinander. Das könnte ein Kabelproblem geben.
Naja, der Gag bei einem IntraNET ist ja, dass irgendwie schon jeder mit jedem verbunden ist .

Zitat:
Unter Windows (also Kommandozeile/Shell) kann man aber bspw. keinen USB-Drucker ansteuern. Oder?
Im günstigsten Fall isses wurscht was das für ein Drucker ist.
Wobei ich mich vage daran erinnere, dass es da bei den (billigeren) USB Druckern unter Windows eine Besonderheit gab.
Am Ende hilft wohl nur Probieren (oder mit dem Admin flirten).

gimp.
gimp ist offline   Mit Zitat antworten
Alt 19.10.2007, 12:32  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Du kannst auch per CSS den "hier drucken"-Knopf beim Druck verbergen statt irgendwas mit onload() und neuen Fenstern zu machen...
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 23.10.2007, 08:43  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

Funktioniert alles nicht. Nee, falsch ausgedrückt: Es funktioniert, aber es ist trotzdem suboptimal.

Problem: Der Benutzer braucht in einem Rutsch ca. 10-20 Ausdrucke, also würden 10-20 Fenster aufpoppen und er müsste 10-20 Mal den Druckauftrag bestätigen.

Es müsste ein Kommandozeilen-Prog geben, dem man als Parameter die Datei und den Namen des (Netzwerk-) Druckers geben kann. Somit wäre das Drucken per exec() möglich. (Alles intern, es wäre kein Sicherheitsproblem!)

Aber gibt es so ein Programm

cya
vollkommenegal ist offline   Mit Zitat antworten
Alt 23.10.2007, 10:17  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Also ich hab einfach mal "linux drucken aus der konsole" bei Google eingegeben und das erste Ergebnis liefert folgendes:

http://www.cs.uni-paderborn.de/irb/p...ter-linux.html

Unter Windows hab ich mir gedacht gibts doch bestimmt nen DOS-Befehl der print heisst. Also DOS-Konsole geöffnet und print eingegeben un VOILA ich hatte recht

Zitat:
C:\Dokumente und Einstellungen\Administrator>print /?
Druckt eine Textdatei.

PRINT [/D:Gerät] [[Laufwerk:][Pfad]Dateiname[...]]

/D:Gerät Gerät, auf dem gedruckt werden soll
Kannst also beides über system() aufrufen. Musst nur vorher deine Datei erstellen.

Wir aber halt beides nur mit Textdateien funktionieren. Um PDFs etc. zu drucken musst du schon härtere geschütze auffahren.
cycap ist offline   Mit Zitat antworten
Alt 23.10.2007, 10:33  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Jetzt bin ich noch einiges schlauer:

http://de2.php.net/manual/de/ref.printer.php

da steht das funktioniert nur unter windows, aber in den Kommentaren hab ich schon gesehen das mit einigen Tricks auch das drucken unter Unix möglich ist.
cycap ist offline   Mit Zitat antworten
Alt 23.10.2007, 10:34  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

LPR habe ich mittlerweile auch schon gefunden (Muss ich aber noch testen.)

PRINT funktioniert aber nur bei Text-Dateien und auf lokale Drucker, die am LPT angeschlossen sind. Bei einem USB-Drucker geht es schon nicht mehr und über einen Netzwerkdrucker schon gar nicht...

edit zu den Drucker-Funktionen in PHP:
Erstens steht da überall "(No version information available, might be only in CVS)", was mich sehr nerös macht.

Zweitens funktioniert es (wie Du schon selber schreibst) nur unter Windows. (Wobei das ggf. nicht so schlimm wäre, denn für Linux gibt es ja anscheinend LPR.

Drittens sehe ich nirgendwo, dass man einfach eine Datei übergeben kann. Wenn ich das richtig verstehe, muss ich mit printer_ start_ doc (), printer_ start_ page(), printer_ create_ pen() usw. das Dokument manuell selber erstellen...urgs...

cya
vollkommenegal ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Drucken mit LP bzw. LPR vollkommenegal Server, Hosting und Workstations 0 30.10.2007 10:01
PHP : Drucken und Seitenumbruch malabarista PHP Tipps 2007 10 03.12.2005 12:33
Drucken ohne Header und mit Cell-colors winfo_cologne HTML, Usability und Barrierefreiheit 4 23.09.2005 09:32
einen frame drucken in besonderer hinsicht boehseronkel HTML, Usability und Barrierefreiheit 0 14.07.2005 15:15
Lange Tabelle im Querformat drucken ? Cyberbob_at_tot HTML, Usability und Barrierefreiheit 6 27.06.2005 08:56
direkt drucken ohne vorher drucker auszuwählen PHP-Fortgeschrittene 5 10.02.2005 19:58
im eigenen Bereich über das Internet drucken Soese PHP Tipps 2004-2 1 23.12.2004 22:40
am besten drucken PHP Tipps 2004-2 5 17.12.2004 16:40
[Erledigt] Etiketten drucken HTML, Usability und Barrierefreiheit 1 23.11.2004 21:11
Drucken der Dokument-Informationen HTML, Usability und Barrierefreiheit 2 02.11.2004 18:38
inhalt aus einem frame drucken PHP Tipps 2004 2 07.09.2004 00:24
-!- Im Textfeld enter drücken können... PHP Tipps 2004 6 26.08.2004 15:09
ganzen span-Inhalt drucken HTML, Usability und Barrierefreiheit 1 07.08.2004 00:51
Wie kann man was drucken lassen indem man auf Button klickt? 18inch PHP Tipps 2004 3 13.07.2004 19:22
ganze Seite Drucken PHP Tipps 2004 5 17.06.2004 17:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php drucken, drucken php, drucken mit php, php druck, mit php drucken, php drucker ansteuern, php dokument drucken, drucken aus php, php druck drucker wechseln, aus php drucken, drucken unter php, drucken in php, php bild drucken, php html drucken, über php drucken, php drucker ansprechen, drucken über php, druck php, php lpr, html php drucken

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.