首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用命令行工具重新排序大型PDF文件

使用命令行工具重新排序大型PDF文件
EN

Stack Overflow用户
提问于 2017-07-09 07:07:27
回答 3查看 452关注 0票数 2

我正在处理包含数百个表单的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等)来完成此任务的方法,但没有成功。这些文件非常大,所以我想使用命令行工具来完成。

任何建议都将不胜感激!

EN

回答 3

Stack Overflow用户

发布于 2017-07-11 19:43:29

CIB (https://www.cib.de)的CIB pdf工具箱有一个(非免费)命令行工具版本,支持所有可能的PDF合并一次运行。

你有没有试过poppler utils?我认为使用命令行工具pdfseparate和pdfunite实用程序可以实现您想要的所有功能。

  • http://www.manpagez.com/man/1/pdfseparate/
  • http://www.manpagez.com/man/1/pdfunite/
票数 0
EN

Stack Overflow用户

发布于 2017-08-20 05:58:58

如果PDF中表单的顺序发生更改,对您有影响吗?例如,如果不是

代码语言:javascript
运行
复制
 form1-reversed,
 form2-reversed,
 form3-reversed

生成的文件将如下所示

代码语言:javascript
运行
复制
 form3,
 form2,
 form1

在这种情况下,您可以只运行PDFtk,这样它就可以完全颠倒原始文件的所有页面:

代码语言:javascript
运行
复制
pdftk in.pdf cat r1-1 output reversed.pdf

(以字母r作为页码前缀以相反的顺序引用页面。这意味着r1是最后一页...)

票数 0
EN

Stack Overflow用户

发布于 2017-08-20 06:12:31

如果您使用的是支持shell脚本的操作系统(如Linux或macOS上的Bash ),您可以通过如下方式(假设您的n==10)来实现所请求的页码的输出:

代码语言:javascript
运行
复制
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命令根据需要对页面进行重新排序:

代码语言:javascript
运行
复制
pdftk in.pdf cat $(for i in {1..10};do echo -n "$((2 * ${i})) ";echo -n "$((2*${i}-1 )) ";done) output out.pdf
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44991540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档