sonorc
Goto Top

Batch - PDF Drucken nach Stückzahl

PDF Drucken mit Auflage die Manuel eingegen werden kann

Hallo,
ich brauche in Batch ein script.
Er soll mir immer eine Bestimmte PDF drucken.
Mit dem Script, den ich habe geht es soweit.
Aber nun muss ich noch durch html/php oder auch anders eine Stückzahl eingeben können, wieoft er sie Drucken Soll.
Ich suche schon seit 8 Uhr Morgen, ich hoffe es kann mir einer Helfen.

@echo off & setlocal enabledelayedexpansion
FOR %%p in ("C:\test\*.pdf") do (  
start "Ausdruck" "C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" /p /h "%%p"  
ping -n 10 localhost>nul
taskkill /F /IM AcroRd32.exe
)

Content-ID: 126630

Url: https://administrator.de/forum/batch-pdf-drucken-nach-stueckzahl-126630.html

Ausgedruckt am: 23.12.2024 um 07:12 Uhr

pxxsxx
pxxsxx 07.10.2009 um 13:09:20 Uhr
Goto Top
Du könntest die Stückzahl als Argument übergeben und eine Schleife laufen lassen... Ist nur so ne Idee. Wie soll das ganze aufgerufen werden?

Gruß
Peter
60730
60730 07.10.2009 um 13:10:22 Uhr
Goto Top
Servus,

warum machst du das so komplex?

copy C:\test\*.pdf lpt1 oder \\printserver\druckername

entweder einen "speziellen Drucker anlegen, der immer 5 kopien druckt, oder einen Zähler, der 5oder x mal den Copy Befehl durchzieht.

Gruß
miniversum
miniversum 07.10.2009 um 13:18:43 Uhr
Goto Top
Versuchs damit:
@echo off & setlocal enabledelayedexpansion
:loop
set /p anzahl=Wieviele Ausdrucke sollen erstellt werden?:
set /a x=%anzahl%+1
if %x% equ 0 (echo Bitte eine Zahl ^>=1 angeben & goto:loop)
FOR /L %%z IN (1,1,%anzahl%) do (
FOR %%p in ("C:\test\*.pdf") do (  
start "Ausdruck" "C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" /p /h "%%p"  
ping -n 10 localhost>nul
taskkill /F /IM AcroRd32.exe
)
)
Sonorc
Sonorc 07.10.2009 um 13:19:14 Uhr
Goto Top
Momentan habe ich es in einer .bat Datei.
Er soll die PDF Drucken, die im Ordner test sind.
Aber die Auflage kann sich immer ändern.
Es kann sein das ich in 1 Stunde nur 20 Stück der Selben PDF drucken will.
Und die leute, die es Benutzen sollen es nicht manuel im code ändern.

Man könnte es ja auch ganz einfach machen indem man PDF öffnet und selbst auf Drucken geht aber bei 500 bis 1000 Drucke am Tag sparen wir damit keine Zeit in der Firma.

Ich dachte da an eine HTML/PHP lösung, weiß nicht ob sowas geht.
Aber es währe auch ok wen man die bad öffnet und er dann fragt wieviel ich haben will.

mfg
Simon
dave114
dave114 07.10.2009 um 13:31:33 Uhr
Goto Top
mir dem script von miniversum sollte es eigentlich funktionieren face-wink
Larz
Larz 07.10.2009 um 13:39:58 Uhr
Goto Top
Hoi,

hätte auch noch nen Schnipsel anzubieten:

@echo off & setlocal enabledelayedexpansion 
set counter=0
set /p Anzahl=Wie viele Ausdrucke sollen erfolgen:

:DoAction
set /a counter=%counter%+1

FOR %%p in ("C:\test\*.pdf") do (  
start "Ausdruck" "C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" /p /h "%%p"  
ping -n 10 localhost>nul
)

if %counter%==%Anzahl% goto :ByeBye
goto :DoAction

:ByeBye
taskkill /F /IM AcroRd32.exe
@ECHO Ende
PAUSE

Gruß
Larz

P.S.: Ich gehe davon aus dass taskkill /F /IM AcroRd32.exe nur einmal nach allen Ausdrucken erfolgen muss.
Sonorc
Sonorc 07.10.2009 um 13:44:47 Uhr
Goto Top
Danke für die Schnellen Hilfen.
Die Codes geht sehr gut aber nun habe ich gesehen, dass es doch besser ist erst nach der Artikelnummer zu Fragen und dann die Stückzahl.

Artikelnummer währe dann
0001.pdf
0002.pdf
usw

Ich schau mal ob ich es schaffe, wenn nicht dann melde ich mich nochmal.

mfg
Simon
dave114
dave114 07.10.2009 um 13:45:41 Uhr
Goto Top
morgen Larz,

ich hatte überlegt aus deinem umbenennen-Script was zusammenzustellen face-wink - hab mich dann aber dazu entschieden das das Script von miniversum auch reicht face-smile

mfg

David
Sonorc
Sonorc 07.10.2009 um 14:11:52 Uhr
Goto Top
Ist doch nicht so leicht wie ich dachte.
Kann mir einer ein Tip geben, wie ich noch eine PDF namens abfrage mache?
Er soll erst nach der PDF fragen, die er Drucken soll und dann die Stückzahl.
Aber dazu muss auch noch überprüft werden ob sie in dem Ordner Existiert...

mfg
Simon
Larz
Larz 07.10.2009 um 14:48:29 Uhr
Goto Top
Heißen die Dateien immer gleich? Also Datei1.pdf, Datei2.pdf etc.
Dann könntest Du ja eine entsprechende Abfrage basteln.
Oder eben mit

set /P Name=Bitte hier den Dateinamen eingeben:

gefolgt von
IF exist %Pfad%%Name% goto :DoAction

Gruß
Larz
Larz
Larz 07.10.2009 um 14:54:57 Uhr
Goto Top
Hallo David,

ich denke mal Du meinst hauptsächlich wegen dem Auswahldialog
Hatte ich auch schon dran gedacht.... face-smile

Gruß
Larz
dave114
dave114 07.10.2009 um 14:59:14 Uhr
Goto Top
morgen Larz,

eigentlich sollte meine Antwort noch vor der von Sonorc stehen aber da war ich anscheinend nicht schnell genug.

Ja der Auswahldialog wäre auch nicht schelcht aber ich wollte eigentlich auf die Variablensetzung raus face-wink

mfg

David
Sonorc
Sonorc 07.10.2009 um 15:03:24 Uhr
Goto Top
der code scheint bei mir nicht zu gehen:

@echo off & setlocal enabledelayedexpansion 
set counter=0
set /p Anzahl=Wie viele Ausdrucke sollen erfolgen:

:DoAction
set /a counter=%counter%+1

FOR %%p in ("C:\test\*.pdf") do (  
start "Ausdruck" "C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" /p /h "%%p"  
ping -n 10 localhost>nul
)

if %counter%==%Anzahl% goto :ByeBye
goto :DoAction

:ByeBye
taskkill /F /IM AcroRd32.exe
@ECHO Ende
PAUSE

der geht:

@echo off & setlocal enabledelayedexpansion
:loop
set /p anzahl=Wieviele Ausdrucke sollen erstellt werden?:
set /a x=%anzahl%+1
if %x% equ 0 (echo Bitte eine Zahl ^>=1 angeben & goto:loop)
FOR /L %%z IN (1,1,%anzahl%) do (
FOR %%p in ("C:\test\*.pdf") do (  
start "Ausdruck" "C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" /p /h "%%p"  
ping -n 10 localhost>nul
taskkill /F /IM AcroRd32.exe
)
)

EDIT: ach beide gehen habe nur was kaputt gemacht

EDIT 2:

wieso geht es bei mir nicht wen ich dort wo der Stern (*) ist 0001.pdf schreibe?
FOR %%p in ("C:\test\*.pdf") do (  
60730
60730 07.10.2009 um 15:09:36 Uhr
Goto Top
@miniversum:

dein Script ist noch am ehesten sinnig - auch wenn Du "nur" *lach* das vorhandene erweitert hast.

@ Larz: Schau dir mal Miniversums Zeile 5 an face-wink

Ansonsten wäre dieser Schnippsel dazu geeignet "irgendeine" Pdf drauf zu werfen, eine Zahl einzugeben und fettich ist der Lack?


title Datei %1 drucken
set /p Anzahl=Wie viele Ausdrucke von %1:
@FOR /L %%z IN (1,1,%anzahl%) do (
@copy %1 \\server\drucker\
)
:end


edit
:
EDIT 2:

wieso geht es bei mir nicht wen ich dort wo der Stern (*) ist 0001.pdf schreibe?

Gegenfrage:

Wieviele 0001.pdf sind denn im Ordner? face-wink
Sonorc
Sonorc 07.10.2009 um 15:15:47 Uhr
Goto Top
eine *g

habe momentan 3 PDFs drin.

und durch die Abfrage will ich aussuchen welche er drucken soll von den 3.
hier der Code:

@echo off & setlocal enabledelayedexpansion 
:Name
set /P Name=Bitte hier den Dateinamen eingeben:
IF exist C:\test\%Name%.pdf goto :Anzahl
goto :Name

:Anzahl
set counter=0
set /p Anzahl=Wie viele Ausdrucke sollen erfolgen:

:DoAction
set /a counter=%counter%+1

FOR %%p in ("C:\test\%Name%.pdf") do (  
start "Ausdruck" "C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" /p /h "%%p"  
ping -n 10 localhost>nul
)

if %counter%==%Anzahl% goto :ByeBye
goto :DoAction

:ByeBye
taskkill /F /IM AcroRd32.exe
@ECHO Ende
PAUSE

EDIT:
ok soweit ich es sehen kann geht %Name% unterwegs verloren
dave114
dave114 07.10.2009 um 15:38:36 Uhr
Goto Top
warum geht %name% verloren?

mfg

David
Sonorc
Sonorc 07.10.2009 um 15:41:33 Uhr
Goto Top
so aber Ignoriert er das

:Anzahl
set counter=0
set /p Anzahl=Wie viele Ausdrucke sollen erfolgen:

und wenn ich so ein namen eingebe der nicht existiert geht er auch automatisch weiter, deswegen hatte ich in Zeile 05 goto Name

EDIT:

so geht es ja zu 90%

@echo off & setlocal enabledelayedexpansion 
:Name
set /P Name=Bitte hier den Dateinamen eingeben:
IF exist C:\test\%Name%.pdf goto :Anzahl
goto :Name

:Anzahl
set counter=0
set /p Anzahl=Wie viele Ausdrucke sollen erfolgen:

:DoAction
set /a counter=%counter%+1

FOR %%p in ("C:\test\%Name%.pdf") do (  
start "Ausdruck" "C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" /p /h "%%p"  
ping -n 10 localhost>nul
)

if %counter%==%Anzahl% goto :ByeBye
goto :DoAction

:ByeBye
taskkill /F /IM AcroRd32.exe
@ECHO Ende
PAUSE

In der Zeile 05 findet er die PDF aber er will Sie nicht Drucken... und in der Zeile 15 Findet er sie nicht... glaube ich, weil dann mein Drucker keine Anfrage bekommt.
dave114
dave114 07.10.2009 um 15:52:56 Uhr
Goto Top
wenn er das pdf findet dann geht er ja garnicht weiter in zeile 5 sondern springt direkt in zeile 7

das mit der zeile 15 da kann ich dir grad nicht weiterhelfen - ich weiß nicht wie da der consolenbefehl sein muss

mfg

David
dave114
dave114 07.10.2009 um 15:55:03 Uhr
Goto Top
ach ja du muss die : bei den goto befehlen wegmachen wenn ich mich nicht irre :D
Sonorc
Sonorc 07.10.2009 um 15:55:08 Uhr
Goto Top
jop, das geht ja auch, dann Fragt er mich wie groß die Auflage sein soll.
Ich tippe 1 oder 2 ein und dann macht der Drucker nix

EDIT:

die ":" sind weg aber geht ja auch net ^^
dave114
dave114 07.10.2009 um 15:56:54 Uhr
Goto Top
ja wie gesagt mit dem druckbefehl da kann ich dir nicht helfen face-sad

da sollen Larz und miniversum nochmal ran face-wink
60730
60730 07.10.2009 um 15:57:38 Uhr
Goto Top
Hello again...

darf ich mal zwischenfragen, wie das ganze laufen soll?

Bisher gehts du auf immer noch den gleichen Weg - den du mal gehen wolltest.

Und mit Änderungen anderer kommst du auch soweit, das du das - was dir vorgeschlagen würde auch bei dir klappt.


  • Hast du das mit dem copy auch mal versucht?
  • oder den Ansatz mit dem Dreck & Trop(f)?

Wenn jetzt ein Kunde mit einem Großauftrag droht, und Ihr 99 Dokumente drucken müsst.

  • 99 * ~27 MB + Dateigröße des PDfs?
  • 99 Fenster vom Acrobat Reader?
  • 99 * wielange braucht der Acrobat zum starten?
  • deine User werden sicherlich bald Aggro wegen dieser bat.

Ich mein ja nur....

Gruß
Sonorc
Sonorc 07.10.2009 um 15:57:49 Uhr
Goto Top
ok, Danke
Werde dann mal auf die Beiden warten.
dave114
dave114 07.10.2009 um 16:01:47 Uhr
Goto Top
berechtigter Einwand TimoBeil face-wink
Sonorc
Sonorc 07.10.2009 um 16:08:32 Uhr
Goto Top
ok, das mit copy geht aber wie mache ich es, dass er auch PDF druckt?
wen ich es so mache:

@echo off & setlocal enabledelayedexpansion 
:Name
set /p Name=Bitte hier den Dateinamen eingeben:
IF exist C:\test\%Name%.pdf goto Anzahl
goto Name

:Anzahl
set counter=0
set /p Anzahl=Wie viele Ausdrucke sollen erfolgen:

:DoAction
set /a counter=%counter%+1
copy C:\test\%name%.pdf \\Asusvgr\dell
start "Ausdruck" "C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" /p /h "%%p"  

if %counter%==%Anzahl% goto ByeBye
goto DoAction

:ByeBye
taskkill /F /IM AcroRd32.exe
@ECHO Ende
PAUSE

dann kommen da 17 seiten aus den Drucker mit komischer schrift *g
dave114
dave114 07.10.2009 um 16:20:59 Uhr
Goto Top
wie 17 seiten mit komischer schrift ? :-P
Sonorc
Sonorc 07.10.2009 um 16:26:04 Uhr
Goto Top
Der Drucker muss es mit AcroRd32.exe öffnen sonst druckt er nix gutes *g
dave114
dave114 07.10.2009 um 16:28:25 Uhr
Goto Top
:D

na denne - wo ein Problem da auch die Lösung face-wink
Sonorc
Sonorc 07.10.2009 um 16:33:05 Uhr
Goto Top
ist es den so richtig?

FOR %%p in copy C:\test\%name%.pdf \\Asusvgr\dell do (
start "Ausdruck" "C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" /p /h "%%p"  
)
miniversum
miniversum 07.10.2009 um 16:39:28 Uhr
Goto Top
Zitat von @60730:
@miniversum:

dein Script ist noch am ehesten sinnig - auch wenn Du
"nur" *lach*
das vorhandene erweitert hast.

Na man muss ja nicht immer alles neu erfinden. Besonders nicht wenn die Basis funktioniert.
60730
60730 07.10.2009 um 16:42:45 Uhr
Goto Top
Zitat von @Sonorc:
Der Drucker muss es mit AcroRd32.exe öffnen sonst druckt er nix
gutes *g

mit anderen Worten, das ist ein PCL6 und kein PCL5e Treiber?

Und nein - das Script mit dem Copy hatte kein FOR %%p in copy...
Netkid
Netkid 06.06.2011 um 14:33:40 Uhr
Goto Top
Hallo Sonorc,
Dein Batch ist super.
Wie muß man es denn coden, daß immer nu ein bestimmtes PDF
als Text (mit fixen Dateinamen) automatisch gespeichert wird?
Das würde mir sehr helfen.