手动双面扫描后,用python整理页面顺序

问题

市面上的打印一体机的进纸器一般都是单面扫描的,如果要用进纸器扫描双面文档的话,就得正面扫一次,背面扫一次,这样页码就乱掉了。

例如,对于一个有6页的双面文档,正面看过去是1,3,5页,背面看过去是6,4,2页。这样你正面然后背面扫完之后,合成得到的pdf文档页序就是1,3,5,6,4,2页。需要把这个页码整理过来。

方法

不难看出两种整理方法:

  1. 依次从文档的头、尾各取一页,组合成新的文档,循环总页数的一半次;
  2. 依次把最后一页前移到它应在的位置上,循环总页数的一半减一次。

第二种方法少循环一次,因为过程如下:

  • 1,3,5,6,4,2
  • 1,2,3,5,6,4
  • 1,2,3,4,5,6

由于第二次循环结束后,6页自己就已在文档最后,所以不需要移动了,这样就省了一次循环。因此这里我是用的第二种方法。使用fitz包,工作的部分只需两行:

for i in range(pagenum//2-1): 
   pdf_in.move_page(pagenum-1,2*i+1)

即:循环总页数一半减一等于两(pagenum//2-1)次,把最后一页(pagenum-1)移动(move_page())到它本来的后一页(2*i+1)之前(注意fitz的页码是从0开始的)。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值