我想使用扫描仪的ADF扫描大文档。因为它不是双面ADF,所以我无法自动扫描双面页面。所以我所做的是:
我得到的是一个包含此页码模式的PDF文件:
1 3 5 2 4
(如何)我可以使用shell脚本对PDF进行排序?有一种模式,所以应该是可能的。
答案 0 :(得分:0)
这可能会让你开始。首先将所有页面提取为单独的文件。获取bash
数组中的文件名。然后对数组进行排序。然后重新组合页面。
#!/bin/bash
# Extract all pages as "orig-000.png", "orig-001.png"
pdfimages -png "$1" orig
# Make array of names of pages
orig=($(ls orig-*png))
echo Extracted pages:
echo @{orig[@]}
npages=${#orig[@]}
echo Pages: $npages
# ii = input index
# oi = output index
halfway=$(echo "($npages-1)/2" | bc)
oi=0
for((ii=0;ii<npages;ii++)); do
[[ ii -eq $halfway ]] && oi=1;
echo $ii,$oi
out[oi]=${orig[ii]}
((oi+=2))
done
echo Sorted pages:
echo ${out[@]}
# Reassemble pages like this - I am suggesting ImageMagick's "convert" but your OS may have better tools
echo convert ${out[@]} sorted.pdf
输出 - 9页PDF
Extracted pages:
orig-000.png orig-001.png orig-002.png orig-003.png orig-004.png orig-005.png orig-006.png orig-007.png orig-008.png
Pages: 9
0,0
1,2
2,4
3,6
4,1
5,3
6,5
7,7
8,9
Sorted pages:
orig-000.png orig-004.png orig-001.png orig-005.png orig-002.png orig-006.png orig-003.png orig-007.png orig-008.png
convert orig-000.png orig-004.png orig-001.png orig-005.png orig-002.png orig-006.png orig-003.png orig-007.png orig-008.png sorted.pdf