我正在处理包含数百个表单的PDF文件。每个表单都有2页长,因此在大多数文件中,第1-2页是第一个表单,第3-4页是第二个表单,依此类推。
但是,有几个PDF文件中表单的页面顺序颠倒了。在这些情况下,页面1是第一表单的第二页,页面2是第一表单的第一页,页面3是第二表单的第二页,页面4是第二表单的第一页,依此类推。
我想重新排序这些文件中的页面顺序,使页面按以下顺序排列:(2(1),2(1)-2,2(2),2(2)-1,2(3),2(3)-1,...,2n,2n-1),其中n=总页数/2。
我一直在寻找一种使用命令行工具(如cpdf、pdftk等)来完成此任务的方法,但没有成功。这些文件非常大,所以我想使用命令行工具来完成。
任何建议都将不胜感激!
发布于 2017-07-11 19:43:29
CIB (https://www.cib.de)的CIB pdf工具箱有一个(非免费)命令行工具版本,支持所有可能的PDF合并一次运行。
你有没有试过poppler utils?我认为使用命令行工具pdfseparate和pdfunite实用程序可以实现您想要的所有功能。
发布于 2017-08-20 05:58:58
如果PDF中表单的顺序发生更改,对您有影响吗?例如,如果不是
form1-reversed,
form2-reversed,
form3-reversed
生成的文件将如下所示
form3,
form2,
form1
在这种情况下,您可以只运行PDFtk,这样它就可以完全颠倒原始文件的所有页面:
pdftk in.pdf cat r1-1 output reversed.pdf
(以字母r
作为页码前缀以相反的顺序引用页面。这意味着r1
是最后一页...)
发布于 2017-08-20 06:12:31
如果您使用的是支持shell脚本的操作系统(如Linux或macOS上的Bash ),您可以通过如下方式(假设您的n==10
)来实现所请求的页码的输出:
for i in {1..10}; do
echo -n "$(( 2 * ${i} )) ";
echo -n "$(( 2 * ${i} -1 )) ";
done
这将输出2 1 4 3 6 5 8 7 10 9
。现在,您可以使用以下PDFtk命令根据需要对页面进行重新排序:
pdftk in.pdf cat $(for i in {1..10};do echo -n "$((2 * ${i})) ";echo -n "$((2*${i}-1 )) ";done) output out.pdf
https://stackoverflow.com/questions/44991540
复制相似问题