Batch-drucken pdf-Datei per Kommandozeile mit sumatra pdf
da Adobe veröffentlicht ein neues Update für den Adobe Reader (11.09 auf 16.09.2014), stießen wir auf ein problem mit dem drucken von pdf-Dateien über die Befehlszeile.
Unsere formal-Skript sieht wie folgt aus:
:job
@for /F "tokens=1,* delims= " %%p in ('dir /b/a-d /s "Y:\*.pdf"') do (
echo Printing file: "%%p" on %date%
::prints the pdf document with adobe reader
"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /p /h "%%p"
::move file to destination
echo wait 10 seconds
::wait 10 seconds then continue
ping 127.0.0.1 -n 10 > nul
echo move file: "%%p" to "C:\PDF"
::move file to destination
move "%%p" "C:\PDF"
echo moved successfully!
echo proceeding next file
)
echo waiting for files to print...
echo wait 7 seconds
ping 127.0.0.1 -n 7 > nul
::clear console
cls
::repeat with job (endless loop)
goto job
Wurde das Skript funktioniert wie erwartet vor. Seit dem update ist das Skript, oft hängt oder ist mega langsam.
das Skript wurde mehr oder weniger nutzlos.
Ursache der adobe reader ist sicherlich nicht die kleinste, auch als wir verwenden eine leicht alternativ wie sumatrapdf oder foxitreader. Dies wäre ein guter Punkt um zu starten mit einer dieser alternativen.
Also wollte ich es versuchen, mit sumatrapdf.
Ihre Dokumentation sagte:http://blog.kowalczyk.info/software/sumatrapdf/manual.html
=> -print-to-default " - $ - Datei.pdf-druckt eine PDF-Datei auf einem Standard-Drucker
so ive kommen, bis zu diesem, analog zum adobe reader Beispiel
:job
@for /F "tokens=1,* delims= " %%p in ('dir /b/a-d /s "Y:\*.pdf"') do (
call "C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" -print-to-default "%%p"
start "" "C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" -print-to-default "%%p"
"C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe" -print-to-default "%%p"
... the rest
Aber nichts funktioniert. Wenn auch versucht haben:
"C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe -print-to-default" "%%p" aufrufen,starten und so weiter...
Tut anyboy wissen, wie man die Druck-arbeiten mit sumatrapdf? Ich wäre auch nicht abgeneigt, indem Sie es mit foxit reader.
Wäre es eine Freude, ein paar Tipps 🙂
Vielleicht hat jemand ein ähnliches problem zu lösen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Adobe Reader
Laut Wie verwende ich die Windows-Eingabeaufforderung mit Acrobat und Adobe Reader? (für Adobe Acrobat/Reader 10 und nicht XI) den Befehl zum drucken mit Dialogfenster ist:
Ich denke, es ist nicht sinnvoll, verwenden Sie die option
/h
starten von Adobe Reader mit ein minimiertes Fenster, wenn das Dialogfeld drucken angezeigt werden soll.Zum drucken auf einem bestimmten Drucker der Befehlszeile zu verwenden, wäre so etwas wie
/wait
Stoppt die Ausführung von batch-Jobs, bis Adobe Reader beendet sich selbst. Und option/min
Ergebnisse in der Ausführung der GUI-Anwendung mit ein minimiertes Fenster, wenn die Anwendung Sie nicht überschreiben, es und zeigt trotzdem das Fenster maximiert oder wiederhergestellt Modus.SumatraPDF
Ich bin mir nicht sicher, ob SumatraPDF Handbuch ist up-to-date, weil es links unten eine Wiki-Dokumentation für Sumatra PDF mit Kommandozeilen-Argumente Seite. Diese Wiki-Seite wurde vor kurzem aktualisiert und enthält verschiedene Informationen über Druckoptionen.
Also sollte es möglich sein zu drucken, auch mehrere Dateien in der Befehlszeile angegeben mit einem Aufruf von SumatraPDF, die Ihre batch-Datei effizienter.
Als ich noch nicht installiert, SumatraPDF, ich schlage vor, versuchen zuerst eine batch-Datei mit nur den 3 Linien
Nächsten Blick auf die Ausgabe der batch-Datei. Wird ein Fehler angezeigt, oder ist die PDF-Datei gedruckt, wie erwartet?
Ist die zweite Zeile der Ausgabe in der Konsole-Fenster vor dem drucken fertig?
Wenn dies der Fall ist, SumatraPDF ist gestartet als ein separater Vorgang, der exit-code Auswertung ist nicht wirklich möglich. Ansonsten haben Sie bereits den Befehl zu verwenden.
Aber wenn SumatraPDF starten als separate (GUI) - Prozess, ist es wahrscheinlich notwendig, verwenden Sie den Befehl
start
mit option/wait
und vielleicht auch/min
wie oben gezeigt, für die Sie den Adobe Reader.Hinweis: Es gibt keine
@echo off
an der Spitze der kleinen batch-Datei zum testen, um zu sehen, auch die Befehle bei der Ausführung der batch-Datei.FOR-Schleife
Blick auf den code für die
FOR
Schleife, es ist etwas falsch, wie Sie angeben, wird das Leerzeichen als Trennzeichen das ist nicht gut für die Datei-Pfade/Namen mit einem Platz im inneren. Auch das Leerzeichen wird durch Standard-Trennzeichen für den BefehlFOR
und daher ist es nicht notwendig, explizit zu definieren, es als Trennzeichen ist das wirklich wollte.Daher schlage ich
Mit
"delims="
Trennzeichen-Liste geändert zu newline nur.%%p
hat daher immer den gesamten Pfad und name einer Datei, auch wenn 1 oder mehrere Räume vorhanden, die auf eine Zeile der Ausgabe von Befehldir
.2^>nul
unterdrückt die Fehlermeldung der Befehldir
wenn keine PDF-Datei gefunden werden konnte, der überhaupt auf dem gesamten Laufwerk Y: durch Umleitung der Fehlermeldung um das Gerät NUL.