我正在尝试使用scons自动化将PDF转换为png文件的工作。我使用ImageMagick中的convert工具进行转换。
以下是原始命令行:
以下是我正在使用的SConstruct文件:
代码“pngs = env.Convert(“temp / temp.png”,pdf)”实际上是错误的,因为目标是多个文件,我不知道在执行“env.Convert”之前有多少个文件,因此最终的“output.png”仅包含PDF文件的第一页。
任何提示都将不胜感激。
更新:
我刚发现我可以使用命令“convert input.pdf -append output.png”来避免两步转换。
但我仍然好奇如何处理中间临时文件列表事先未知并需要动态目标列表的情况。
以下是原始命令行:
- convert input.pdf temp/temp.png
- convert temp/*.png -append output.png
以下是我正在使用的SConstruct文件:
convert = Builder(action=[
Delete("${TARGET.dir}"),
Mkdir("${TARGET.dir}"),
"convert $SOURCE $TARGET"])
combine = Builder(action="convert $SOURCE -append $TARGET")
env = Environment(BUILDERS={"Convert": convert, "Combine": combine})
pdf = env.PDF("input.tex")
pngs = env.Convert("temp/temp.png", pdf) # I don't know how to specify target in this line
png = env.Combine('output.png', pngs)
Default(png)
代码“pngs = env.Convert(“temp / temp.png”,pdf)”实际上是错误的,因为目标是多个文件,我不知道在执行“env.Convert”之前有多少个文件,因此最终的“output.png”仅包含PDF文件的第一页。
任何提示都将不胜感激。
更新:
我刚发现我可以使用命令“convert input.pdf -append output.png”来避免两步转换。
但我仍然好奇如何处理中间临时文件列表事先未知并需要动态目标列表的情况。
combine_emitter
。您能否也描述一下它的概述? - metasoarous