我正在使用ImageMagick的convert程序将pdf文件拆分为单个图像。它允许您通过指定' - '作为输出文件将输出写入STDOUT。
我想处理所有这些图像,然后重新合并它们。不幸的是,当我将输出管道传输到新进程时,它不会将流识别为单个图像文件。将所有图像写入磁盘然后用不同的程序读取它们显然是浪费时间,所以有一种方法可以将多个文件写入STDOUT管道,这样每个文件都是STDIN的另一个图像 - 编辑实例? 这些图像编辑实例的输出是否可以合并到最终合并过程的输入中?
答案 0 :(得分:2)
您无法以工具通常识别的任何标准化方式将多个文件发送到stdout。 stdout和stdin是流,因此没有办法判断任何给定的部分是来自一个文件还是另一个文件。
有些工具在stdout和stdin上划分记录的标准方法,比如换行符或空字符,但这对任意数据都不起作用,就像大多数图像格式可能包含的那样。
您有几个选择:
使用支持多个框架或图层的格式。只要将要编辑的工具理解这种格式,你应该没问题。实质上,此格式成为不同文件之间的分隔符。一种相对标准且支持多个页面/图层的格式是TIFF:
convert my.pdf tiff:- | convert - -flip - | convert - my.flipped.pdf
如果您使用ImageMagick编辑文件,请不要将其拆分,编辑每个页面并重新组合,只需一次完成即可。例如:
convert my.pdf -flip my.flipped.pdf
将翻转PDF中的页面,一次性为您提供新的PDF格式。
答案 1 :(得分:0)
将tar
文件写入STDOUT
会是一个合适的解决方案吗?