Senden von PDF-Dateien direkt an einen Netzwerkdrucker über die Windows-Befehlszeile

Ich habe Netzwerkdrucker. Der neue ist ein Kyocera P2135dn und kann PDF-Dokumente direkt verarbeiten: Wenn ich eine PDF-Datei in das Print-Spool-Fenster ziehe, wird die Datei ordnungsgemäß gedruckt und es erscheint kein Treiberdialogfenster, keine Adobe-Tools beteiligt, glaube ich. Wenn ich dieselbe PDF-Datei über ein USB-Flash-Laufwerk zum Drucker bringe, wird auch gut gedruckt.

Jetzt habe ich mehrere hundert PDF-Dateien (alle schön benannt wie 0001.pdf, etc.) in einem Ordner und ich möchte sie an die Drucker über die windows-Befehlszeile.

(Hintergrund: Im nächsten Schritt möchte ich Hunderte dieser Befehle in ein Phyton-Skript einschließen, aber zuerst möchte ich dies "manuell"lernen und testen.)

In der Vergangenheit haben wir GSprint aus dem GSview-Tool verwendet. Es funktioniert immer noch, erstellt jedoch intern große Bitmap-Dateien und ist langsam zu rendern und auch langsam über das Netzwerk (obwohl der Drucker eine schnelle Verbindung hat). Normalerweise kann ich nur etwa vier Seiten pro Minute drucken, und ich haben Hunderte zu drucken. (Die neue GSview von Artifex enthält keinen GSprint. Wir möchten also einen neuen Workflow herausfinden.)

Ich suche nur nach dem richtigen Befehl, um meine PDF-Datei an den Drucker zu senden, der über den Standard-TCP/IP-Port richtig konfiguriert ist. Ich arbeite auf Windows 10 pro, 64bit.

Ich habe es geschafft, lpr unter meinem Windows zu aktivieren und (nur für den Fall) versucht, die Datei zu senden, und sie gesendet bekommen. aber es wird nicht als gültiges PDF erkannt (keine Überraschung) und der Drucker ist ich drucke nur viel Kauderwelsch.

Also bitte sagen Sie mir einfach, welcher Befehl benötigt wird, um eine "Binärdatei" über das Netzwerk an meinen Drucker zu senden. Und ich werde es nachlesen und hoffentlich die Syntax herausfinden. Ich glaube, die Befehlszeile ist am besten-um sie später in ein Phyton-Skript zu integrieren. Aber Power Shell Befehl könnte mir auch helfen.

(Wenn Sie Beispiele senden möchten, wäre das großartig, ist aber optional.)

Datei ist dies, zum Beispiel: C:\Users\martin\MyDocument.pdf -

Drucker port heißt " 192.168.0.200 "(dies ist sein Name, kein Tippfehler)

Danke.

Author: Martin Zaske, 2017-10-16

4 answers

Die meisten Drucker können PDFs nicht direkt drucken. Einige können, aber fast jeder von ihnen erfordert, dass die PDF-Datei über einen speziellen Befehl printer-specifc an den Drucker gesendet wird. Im Falle des Kyocera lautet der Befehl " KYOCERA Net Direct Print". Beachten Sie, dass nur Windows-Versionen verfügbar sind.

Die einzige andere Möglichkeit, eine PDF-Datei über die Befehlszeile an einen Drucker zu senden, besteht darin, einen PDF-Reader mit geeigneten Befehlszeilenoptionen zu verwenden. Alte Versionen von Adobe Acrobat Reader hatten diese Fähigkeit, dies wird jedoch nicht mehr unterstützt. Einige andere PDF-Reader wie Foxit Reader tun dies jedoch immer noch. Dies sollte deutlich schneller sein als GSprint. Um ein PDF mit Foxit zu drucken, verwenden Sie den folgenden Befehl:

Foxit Reader.exe" /t "mit dem Namen

 3
Author: hdhondt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-10-21 08:59:16

LibreOffice hat diese Fähigkeit auch. Fand heraus, nachdem ich herum gefragt und einfach versucht habe, ein PDF mit LibreOffice zu öffnen:) Funktioniert ohne GUI.

Befehlszeilenreferenz für LibreOffice

"\Program Files\LibreOffice\program\soffice.exe" -p <pdffile>

Oder

"\Program Files\LibreOffice\program\soffice.exe" -pt <"Printer name"> <pdffile>
 1
Author: jglathe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-05-25 15:07:22

Für Windows kopieren Sie in cmd einfach auf Druckerfreigabe mit dem Parameter /B (binär):

COPY /B  File.pdf \\PrintServerComputername\PrinterShareName

Beachten Sie ACL.

Vor PrintServerComputername müssen zwei Backslash-Zeichen stehen. Es sieht so aus, als würden sie beim Posten in eins konvertiert.

 1
Author: Zennfra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-08 19:27:25

Befehlszeile für NetDirectPrint:

KMDP.exe "pdffile.pdf" /s "default.bin"

Drucker vor Einstellungen speichern einstellen (.bin - Datei)

 0
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-04-23 14:56:51