如何在 Ubuntu 上使用 chm2pdf 批量转换?

如何在 Ubuntu 上使用 chm2pdf 批量转换?

我不确定我的命令的哪部分不正确,但是输入以下内容时没有出现任何错误,只有一个使用页面:

/usr/bin/chm2pdf --book *.chm *.pdf

/usr/bin/chm2pdf --book *.chm [*.pdf]

更重要的是,我有一个包含 100 多个 .chm 文件的目录,我需要对其进行转换,但是在任何文档中实际上都没有提到批量转换,因此显然通配符可能不是可行的方法。

以下是我收到的信息:

#/usr/bin/chm2pdf --book *.chm [*.pdf]
Usage:
        /usr/bin/chm2pdf [options] input_filename [output_filename]

Options:
...

更具体地说,我的问题是指批量转换,因为我使用上面的示例正确地转换单个 .chm 文件,并且在实用程序的描述中,批量转换显然是一个功能。

答案1

看起来你的语法是正确的,但是你需要遍历批处理作业的项目。

如果它们都在同一个文件夹中,那么像这个脚本一样简单的操作就可以起作用:

#!/usr/bin/env bash

for i in `find . -maxdepth 1 -type f -name "*.chm"`; do
    /usr/bin/chm2pdf --book ${i} `echo ${i} | sed 's/.chm/.pdf/'`
done

这应该更接近您的需要。

解释一下:

1) 您将列出所有匹配的文件,类型为 *.chm,最大深度为 1 个文件夹(您所在的文件夹)。2
) 对于每个文件,运行/usr/bin/chm2pdf${i}作为单个项目的名称。然后将输出文件的文件名从“whatever.chm”替换为“whatever.pdf”。3
) 然后完成。

相关内容