• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst/solved] doc2pdf Konverter als Skript

Ich suche dringend ein Programm , um massenweise *.doc Dateien ins PDF-Format zu konvertieren. Bei OO kenne ich nur die Export-Möglichkeit, aber die ist bei weit über 1000 Dateien zu zeitraubend...

Gruß
 

lOtz1009

Moderator
Teammitglied
Bei OpenOffice ist auch ein Konverter für die Konsole dabei.
Für einige .odt hab ich den mal in einer SChleife laufen lassen, das ging ganz gut.
 
Kutscher58 schrieb:
Ich suche dringend ein Programm , um massenweise *.doc Dateien ins PDF-Format zu konvertieren. Bei OO kenne ich nur die Export-Möglichkeit, aber die ist bei weit über 1000 Dateien zu zeitraubend...
Der OpenOffice_org-converter ist Bestandteil des openOffice.org PAketes und kann das machen wie schon geschrieben wurde. Es gibt bestimmt auch andere Möglichkeiten:
http://doc2pdf.sourceforge.net/download.html
http://www.k2pdf.com/
Kann man nicht auch ps2pdf dafür verwenden?
Mit so einem Scrip:
Code:
#!/bin/sh
# Convert MS-Word-Document to PDF.
umask 002
OPTIONS=""
while true
do
case "$1" in
-*) OPTIONS="$OPTIONS $1" ;;
*) break ;;
esac
shift
done

if [ $# -lt 1 -o $# -gt 2 ]; then
echo "Usage: `basename $0` [options...] input.doc [output.pdf]" 1>&2
exit 1
fi

infile=$1;

if [ $# -eq 1 ]
then
outfile=$1
else
outfile=$2
fi

# Doing an initial 'save' helps keep fonts from being flushed between pages.
exec gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
-sOutputFile=$outfile $OPTIONS -c save pop -f $infile
exec chmod a+r $outfile
lieben Gruß aus Hessen
 
Danke für das Skript. Bisher habe ich mit Skripten noch nicht gearbeitet und weiß deshalb auch nicht, wie ich dem Programm sage, welche Dateien er wohin speichern soll.

So hab' ich es probiert, aber leider erfolglos:

ln@linux-nzud:~/programme-scripte> ./doc2pdf.sh LIMITED\ EDITION\ 2010\ Texte/ *.doc *.pdf
Usage: doc2pdf.sh [options...] input.doc [output.pdf]
ln@linux-nzud:~/programme-scripte>

Was mach ich falsch?
 

lOtz1009

Moderator
Teammitglied
Code:
for i in *.doc; do ooconvert $i $i.pdf; sleep 3; done
So hatte ich das gemacht. Nachteil: Die Ausgabedatei heisst dann *.doc.pdf

Könnte sein, dass doc2pdf Probleme mit den Leerzeichen im Pfadnamen hat...probiers mal innerhalb des Ordners auszuführen (sofern die Dateinamen selbst keine Leerzeichen haben).
Obwohl du mit *.doc da wohl nicht weit kommen wirst (hab mir das Skript allerdings nicht angeschaut).
Prinzipiell könntest du es aber wie in meiner Schleife verwenden. Anstatt ooconvert trägst du doc2pdf.sh ein (das sleep 3 müsste man dabei auch weglassen können).
 
Irgendwie krieg ich das nicht hin, weil ich nicht weiß, wo ich die Pfade eingeben soll. So ist mein Versuch mit dem Tip von Iots1009 geendet:

ln@linux-nzud:~/programme-scripte> cd j4u_2010_Texte/
ln@linux-nzud:~/programme-scripte/j4u_2010_Texte> sh oo-doc2pdf
Error: Too many argumetns!


Noch jemand ne Idee?
 

lOtz1009

Moderator
Teammitglied
Ohne #!/bin/sh oder ähnliches? Also nur die eine Zeile?
Ist so ja nicht gedacht.

Du kannst die komplette Zeile auch einfach so im Terminal ausführen, ohne ein Skript dafür zu bauen ;)

PS: Wenn sich OpenOffice dabei im Terminal meldet von wegen "already running", musst du bei sleep einen höheren Wert (5-10) nehmen. Kommt auf die Rechenleistung an.
 
Also, es hat funktioniert. Und so hab' ich es gemacht:

#!/bin/sh

# In dem Orner ausführen, in dem die Dateien liegen
# Achtung! Keine Leerzeichen im Dateinamen...
# Ausführbefehl = sh oo-doc2pdf(=Skriptname)

for i in *.doc; do ooconvert $i $i.pdf; done

Das mit den Leerzeichen hatte ich übersehen. Deshalb hats wohl auch erst nicht geklappt. Ich habe dann mit Krename sämtliche Leerzeichen durch Unterstriche ersetzt und dann ging es problemlos.

Problem gelöst. Vielen Dank für die Hilfe!

Gruß
 
Oben