我正在使用包含数百种表单的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等)来实现此目的的方法,但无济于事。文件非常大,所以我想通过命令行工具来实现。
任何建议将不胜感激!
答案 0 :(得分:0)
CIB的CIB pdf工具箱(https://www.cib.de)有一个(非免费)命令行工具版本,它支持一次运行中PDF合并的所有可能性。
你尝试过poppler-utils吗? 我认为使用命令行工具pdfseparate和pdfunite实用程序,您可以实现所有目标。
答案 1 :(得分:0)
如果PDF中的表单顺序发生变化,对您来说是否重要?例如,如果不是
form1-reversed,
form2-reversed,
form3-reversed
您生成的文件看起来像
form3,
form2,
form1
在这种情况下,您可以运行PDFtk,以便完全反转所有原始文件的页面:
pdftk in.pdf cat r1-1 output reversed.pdf
(以相反的顺序添加带有r
字母的页码前缀。这意味着r1
是最后一页......)
答案 2 :(得分:0)
如果您使用的是支持shell脚本的操作系统(如Linux或MacOS上的Bash),您可以通过类似的方式实现所请求页码的输出(假设您的n==10
):< / p>
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