Was ist der beste Ansatz zum Drucken (in meinem Fall eine vorhandene PDF) direkt von einem PHP-Drucker? Bisher war es mir nicht gelungen, etwas zur Arbeit zu bringen, aber ich bin mir nicht sicher, in welche Richtung ich weitergehen soll. Ich betreibe Apache auf Windows SBS 2008, PHP 5.3.9.
Ansätze, die ich bisher kenne:
Es scheint, als sollte dies eine einfache Aufgabe sein, die einen weithin akzeptierten Ansatz hat, aber bis jetzt finde ich es nicht. Danke!
Dies ist eine harte Nuss zu knacken. Ich hatte meine eigenen Abenteuer im Windows-Druck von Ruby und habe ein paar mögliche Lösungen gefunden, die funktionieren, indem ein externer Befehl aufgerufen wird, der in PHP-land system()
oder exec()
ist (nicht vergessen escapeshellcmd()
/ escapeshellarg()
- Sie neigen dazu, dieses Zeug einfacher zu machen, besonders unter Windows). Alle gehen davon aus, dass Windows den Drucker kennt und auf den Namen verwiesen werden kann.
Sie können die Datei einfach an den Netzwerkdrucker umleiten, z. B .:
%Vor% Der Schalter /b
gibt eine Binärdatei an, aber ich bin mir 80% sicher, dass es nicht genau jetzt ist,
im Jahr 2012.
Sie können den Befehl print
versuchen:
\d
steht für "Gerät". Ich habe es nicht wirklich versucht und ich bin mir nicht sicher, ob es das ist
arbeitet mit PDF oder nur, aufgrund seiner DOS-Herkunft, Textdateien.
Installieren Sie Adobe Reader und verwenden Sie seine Befehlszeilenfunktionen:
%Vor% Ich bin nicht sicher, ob Ihre Serverumgebung Reader aufnehmen kann, aber das ist die
Lösung, mit der ich am erfolgreichsten war. Sie können finden
Dokumentation hier
(PDF, S. 24). Printer Name
und Driver Name
sollten genau dem entsprechen, was Sie in der
Druckereigenschaften in der Systemsteuerung. Port_Name
kann normalerweise weggelassen werden, denke ich.
Drucken Sie mit Ghostscript . Ich habe das noch nie probiert Windows aber das Dokumentation ist hier und da ist weitere Informationen hier . Das Befehl geht etwa so:
%Vor% mswinpr2
bezieht sich auf Windows-eigene Druckertreiber (siehe den zweiten Link oben),
" %printer%
" ist wörtlich und erforderlich und " Printer Name
" sollte wiederum dem entsprechen
Druckername genau aus der Systemsteuerung. Ghostscript hat viele, viele Optionen und
Sie müssen wahrscheinlich einige Zeit damit verbringen, sie zu konfigurieren.
Schließlich ein allgemeiner Tipp: Sie können einen Netzwerkdrucker mit einem Gerätenamen mit dem net use
Befehl zB:
Mit diesem sollte Sie LPT2
oder LPT2:
anstelle von \Printer_...
mit den meisten Befehlen verwenden.
Ich hoffe, das ist hilfreich!