Drucken mit PHP

dwex

Erfahrenes Mitglied
Hallo Leute,

wieder mal hab ich ein Problem bei dem ich ohne eure Hilfe verzweifeln werde!

Also ich würde gerne über einen auf dem Server angeschlossenen Drucker (Druckertreiber unter Windows und XAMMP) Selbst erstellte Rechnungen ausdrucken.
Kann ich mit PHP einen auf dem Server liegenden Drucker ansteuern und wenn ja wie?

Es geht nur um serverseitige Drucke und nicht um Klientseitige!

Vielen Dank für euere Beiträge im Voraus.
 
Hallo!

Hmm, ich weiss nicht ob es eine "Drucken" Funktion in PHP gibt.

Die Rechnungen werden ja sicherlich als Datei gespeichert?
Ich denke dass es dann mittels exec() möglich sein sollte das Dokument per Batchdatei an den Drucker zu schicken.
Ich kann dir jetzt aber nicht sagen wie dass funktioniert..... evtl. findest Du dafür ja etwas im Windows Board.
Den Dateinamen würde ich per Variable an die Batchdatei übergeben, bzw. die komplette Batchdatei temporär von PHP anlegen lassen.
Irgendwoher muss die Batchdatei ja die Information herbekommen welches Dokument überhaupt gedruckt werden soll.

So währe jetzt mein Gedankengang.

Gruss Dr Dau
 
Hallo , einfachste Lösung wird wohl das generieren einer PDF Datei
mit FPDF sein.

Variablenverarbeitung etc. alles möglich.

SpeedyGGG
 
Vielleicht helfen dir die Drucker-Funktionen? Musst du selbst rausfinden, ich weiß nur, dass es sie gibt. Nicht, ob es sinnvoll ist, damit zu arbeiten. Aber mit deinem Windows-System erfüllst du auf jeden Fall die erste Voraussetzung, die Funktionen nutzen zu können. ;)
 
Hallo zusammen,

@dr dau
Ja leider kann man auch über die Shell keine automatisierungen bezüglich Drucken machen.

@speedyggg
Wie man PDF´s generiert ist mir Klar das weiss ich - aber wie drucke ich die dann automatisiert auf dem Server (und nicht auf der workstation). Also fällt das schon mal flach.

@Pendergast
Danke das werde ich mir mal zu gemüte führen - mal sehen ob es klappt.
Ich melde mich wieder.

Viele Grüße an alle!
 
Die Shell soll ja auch nichts automatisieren, sondern ausführen..... der Befehl wird von PHP gesendet/automatisiert.
Mit anderen Worten: so bald das Dokument von PHP erstellt wurde, wird der Befehl mittels exec() ausgeführt dass das Dokument an den Drucker geschickt werden soll.

Man kann ein Dokument über die Kommandozeile zumindest an einen Netzwerkdrucker schicken (näheres dazu mit "lpr /?" oder Google), evtl. hilft dir das ja weiter.
 
Wenn du von Server und Workstation sprichst wirst du wohl ein Netzwerk haben.
Dann kannst du von jeder stelle aus zu deinem Ziel drucken.
Du bastelst dir ein Batch der deinen freigegebenen Drucker auf LPT1 o.ä mappt. In deinem Fall also auf den Drucker am Server. Wenn du das Dokument dann generiert hast einfach auf dem Drucker drucken.
 
Hallo,

@dr dau
Hey das mit LPR ist klasse - nur leider kann ich keine PDF-Dateien senden. Hier bekomme ich einige Seiten ausgeworfen mit Text.

Das ganze sieht so aus:
%PDF-1.2
%(Irgendwelche Zeichen)
4 0 obj
<<
/Type/Page
usw. usw. usw.

Auf den Folgeseiten kommen dann nur wirre Zeichen.

Was da passiert ist mir schon klar - er kann die gesendete Datei nicht interpretieren und gibt eben die ASCII-Sätze dafür aus.
Aber wie kann ich es schaffen das er mir die PDF-Datei auch richtig ausgiebt?
 
Hmm, gute Frage.
Evtl. muss ja irgend ein Parameter mitgesendet werden.

Ich würde ja gerne ein wenig rumprobieren, denn es scheint eine interessante Sache zu sein.
Nur leider verschwinden die Druckaufträge im Datennirvana. :(
Am Drucker liegt es jedenfalls nicht, denn der hängt bei mir am Linux Router und wird per LPR (aus der Anwendung heraus) von jedem Clienten angesprochen.
Wie nun mal üblich, ist die Hilfe auch nicht wirklich eine Hilfe. :(

Evtl. findest Du hier ja noch etwas.
 
Hallo,

also wenn ich bei mir folgendes auf der Kommandozeile eingebe dann druckt mein EPSON AL-C4000 Advanced was aus.

Code:
lpr -S XXX.XXX.XXX.XXX -P EPSON AL-C4000 Advanced test.txt

Die XXX.XXX usw. sind die Platzhalter für die IP-Adresse meines Druckers.
Der Druckername ist der Name welchen der Druckertreiber unter Windows hat.
In der test.txt stehen nur ein paar Zeilen Text.

Das würde ja im Prinzip schon reichen - nur leider hat man mit ASCII und einer Textdatei nicht gerade viele Gestaltungsfreiräume.

Was ich rausgefunden habe ist, dass es von HP für die meisten Laserdrucker eine Plugin-Karte gibt welche PDF- und JPG-Dateien direkt verarbeiten kann - das Modul heisst "JetCaps". Eine Anfrage beim Epson-Support hat bisher nocht nichts gebracht - die wollen mich zurückrufen.
 
Zurück