majcho
Goto Top

PDF-Datei Seiten mit Batch, Tokens und Ghostscript extrahieren

Habe Dank des For-Tutorials ein kleines Batch geschrieben um einzelne Seiten aus einer .pdf-Datei zu extrahieren. Jetzt würde ich gerne diese einzelnen Seiten mittels Tokens nochmals vereinfachen. Dazu sollen die Seiten 1,19-20,11-12,13-18,21 aus der Datei.pdf extrahiert werden. Leider bin ich mit meiner "Tokens"-Recherche am Ende oder bekomme das einfach nicht hin.

FOR /F "delims=" %%i in ('dir /a-d /b /s "datei.pdf"') do (  
"C:\Program Files\gs\gs9.04\bin\gswin64c" ^  
	-dNOPAUSE -sDEVICE=pdfwrite -dMaxBitmap=300 ^
	-sOutputFile="%%~nia.pdf" ^  
	-dBATCH ^
	-dFirstPage=1 -dLastPage=1 "%%i" ^  
	-dFirstPage=19 -dLastPage=20 "%%i" )  
	-dFirstPage=11 -dLastPage=12 "%%i" ^  
	-dFirstPage=13 -dLastPage=18 "%%i" ^  
	-dFirstPage=21 -dLastPage=21 "%%i" ^  

Content-ID: 177969

Url: https://administrator.de/contentid/177969

Ausgedruckt am: 08.11.2024 um 07:11 Uhr

60730
60730 21.12.2011 um 10:54:21 Uhr
Goto Top
Moin,

Ich bin mir nicht sicher, was du genau willst....

Klar, man "kann" die batch verkuerzen und ein paar wiederkehrende befehlsketten in eine schleife packen.

Aber ob die dann einfacher zu lesen ist oder schneller laeuft?

Bedenke, du willst ganz krumme zahlen nehmen und nix stupides, wie nur grade zahlen von 2 bis 8.

Also nochmal, was genau soll das ziel sein?

Btw bist du dir sicher, das die ueberhaupt das macht, was du willst?
Zeile 7 das ) sieht mir nicht danach aus......

Gruss
majcho
majcho 21.12.2011 um 11:14:07 Uhr
Goto Top
In Zeile 7 habe ich mich vertan.

Ich würde gerne mit SET "1,19-20,11-12,13-18,21" die Zahlenkette hinzufügen und mit Tokens in Variablen zerlegen. Dann diese Variablen für die Seitenaufteilung an ghostscript übergebgen. -dFirstPage=1 -dLastPage=1 - -dFirstPage=19 -dLastPage=20 etc.
bastla
bastla 21.12.2011 um 17:15:46 Uhr
Goto Top
Hallo majcho!

Wenn schon, dann aber besser immer VonSeite und BisSeite angeben - ungetestet:
set "Seiten=1-1,19-20,11-12,13-18,21-21"  
FOR /F "delims=" %%i in ('dir /a-d /b /s "datei.pdf"') do (  
    for %%a in (%Seiten%) do for /f "tokens=1-2 delims=-" %%f in ("%%a") do (  
        "C:\Program Files\gs\gs9.04\bin\gswin64c" ^  
	    -dNOPAUSE -sDEVICE=pdfwrite -dMaxBitmap=300 ^
            -sOutputFile="%%~nia.pdf" ^  
            -dBATCH ^
            -dFirstPage=%%f -dLastPage=%%g "%%i"  
     )
)
Grüße
bastla