HTMLDOC脚本多重转换

HTMLDOC脚本多重转换

我正在尝试使用 HTMLDOC 将多个 htm 文件转换为 pdf。我可以使用以下命令转换单个文件: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 文件外,我没有收到任何错误。

谢谢。

杰西。

PS 我刚刚注意到我的脚本的输出在执行程序 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

答案1

从任何目录

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

答案2

好的,我发现因为我在回显,所以它实际上并没有运行 htmldoc 命令,它只是将命令字符串回显到控制台。我删除了回显,它创建了 pdf 文件。

现在要弄清楚如何让它从源文件所在目录之外运行。当我从上面的目录调用它时,它包含我在命令中设置的路径并创建一个无效的命令字符串。

相关内容