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