CROP script mit for schleife

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ToniThiele
Beiträge: 11
Registriert: 10.01.2010 09:53:47

CROP script mit for schleife

Beitrag von ToniThiele » 06.05.2010 07:13:33

Hallo Ihr lieben,
ich habe jetzt gesehen wie wunderbar einfach man mit pdfcrop eine PDF bearbeiten (beschneiden) kann.
Da ich bei vielen meiner PDFs vor dem gleichen Problem stehen möchte ich mir ein Script schreiben.

Was ich machen will:
PDF-Datei: Ringsgerum 3 oder 4cm rand wegschneiden (dort steht etwas was nicht hingehört) und dann Rings um das eigentliche bild 1 cm Rand geben.
Die einzelbefehle von pdfcrop kenne ich natürlich.
Nun muß das ganze in eine Schlefie eingebunden werden.

Code: Alles auswählen

#!/bin/bash
for i in {pdfcrop -margins '-30 -30 -30 -30' --clip *.pdf *crop.pdf };
do echo $i;
done
for i in {pdfcrop -margins '10 10 10 10' --clip *.pdf *crop2.pdf };
do echo $i;
done
so dachte ich es könnte klappen.
geht aber nicht, es kommt folgende anzeige:

Code: Alles auswählen


thiele:/media/disk/script-pdfs/script-pdfs/Neuer Ordner# sh cropall
{pdfcrop
-margins
-30 -30 -30 -30
--clip
esbanker Model (1).pdf
esbanker.pdf
kennlinieMr.pdf
kennlinie.pdf
*crop.pdf
}
{pdfcrop
-margins
10 10 10 10
--clip
esbanker Model (1).pdf
esbanker.pdf
kennlinieMr.pdf
kennlinie.pdf
*crop2.pdf
}
die Dateien die in dem ordner liegen findet er schon mal.
Hat vielleicht jemand einen Tip von euch was ich da verändern muß.
Ich weiß das die For scheife eigentlich trivial ist aber irgendwie komme ich nicht zum ziel.

Mfg

Toni

Benutzeravatar
Meillo
Moderator
Beiträge: 9253
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: CROP script mit for schleife

Beitrag von Meillo » 06.05.2010 10:41:15

Nach `for i in' müssen die Dateien stehen, oder bei einem Script besser die Argumente (also "$@").

Also in der Art:

Code: Alles auswählen

#!/bin/bash
for i in "$@" ;
do
    echo "$i"
    pdfcrop -margins '-30 -30 -30 -30' --clip "$i" "${i%.pdf}_crop.pdf"
    pdfcrop -margins '10 10 10 10' --clip "$i" "${i%.pdf}_crop2.pdf"
done
Beim Aufruf die Dateinamen angeben.


btw: ``for i in "$@" ; do ...'' entspricht ``for i ; do ...''
Use ed once in a while!

Antworten