Я пытаюсь преобразовать несколько файлов htm в pdf с помощью HTMLDOC. Я могу преобразовать один файл со следующим: htmldoc --webpage -f filename.pdf sample/filename.htm
.
Я пытаюсь создать сценарий, и он, кажется, запускается, но не создает файлы PDF.
for F in *; do
if [ "${F}" ]; then
echo "${F}" htmldoc --webpage -f /home/name/pdf/$F.pdf /home/name/sample/$F
fi
done
Я был бы признателен, если бы кто-нибудь помог мне заставить это работать. Я не получаю никаких ошибок, кроме ожидаемых файлов PDF.
Спасибо.
Джесси.
P.S. Я только что заметил, что вывод моего скрипта ставит префикс имени файла в командной строке, которая выполняет программу htmldoc.
computer1% ./convertpdf.sh
convertpdf.sh htmldoc --webpage -f /home/name/pdf/convertpdf.sh.pdf /home/name/oz-sample/convertpdf.sh
sample1.htm htmldoc --webpage -f /home/name/pdf/sample1.htm.pdf /home/name/oz-sample/sample1.htm
sample2.htm htmldoc --webpage -f /home/name/pdf/sample2.htm.pdf /home/name/oz-sample/sample2.htm
sample3.htm htmldoc --webpage -f /home/name/pdf/sample3.htm.pdf /home/name/oz-sample/sample3.htm
sample4.htm htmldoc --webpage -f /home/name/pdf/sample4.htm.pdf /home/name/oz-sample/sample4.htm
sample5.htm htmldoc --webpage -f /home/name/pdf/sample5.htm.pdf /home/name/oz-sample/sample5.htm
computer1%
Я редактировал сценарий
for F in *; do
if [ "${F}" ]; then
echo htmldoc --webpage -f /home/name/pdf/$F.pdf /home/name/sample/$F
fi
done
Теперь я получаю нормальный результат, но без PDF.
computer1% ./convertpdf.sh
htmldoc --webpage -f /home/name/pdf/sample1.htm.pdf /home/name/oz-sample/sample1.htm
htmldoc --webpage -f /home/name/pdf/sample2.htm.pdf /home/name/oz-sample/sample2.htm
Хорошо, поэтому я обнаружил, что, поскольку я повторял, что на самом деле команда htmldoc не выполнялась, она просто отображала командную строку в консоли. Я удалил эхо, и он создал файлы pdf.
Теперь выясним, как заставить его работать за пределами каталога, в котором находятся исходные файлы. когда я вызываю его из каталога выше, он включает путь, который я установил в команде, и создает недопустимую командную строку.
Из любого каталога
htmdir="change this to directory of htm without final slash"
pdfdir="change this to pdf dir without final slash"
for f in $htmdir/*.htm
do
if [ -f $f ]
then
fname=$(basename "$f")
echo converting $f to $pdfdir/${fname%.*}.pdf
htmldoc --webpage -f $pdfdir/${fname%.*}.pdf $f
fi
done