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-Key: 177969

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

Printed on: April 25, 2024 at 14:04 o'clock

Mitglied: 60730
60730 Dec 21, 2011 at 09:54:21 (UTC)
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
Member: majcho
majcho Dec 21, 2011 at 10:14:07 (UTC)
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.
Member: bastla
bastla Dec 21, 2011 at 16:15:46 (UTC)
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