从命令行操作pdf文档
stapler的Python项目详细描述
订书机是纯python的替代品 PDFtk,一个处理pdf的工具 命令行中的文档。
历史记录
PDFtk是用爪哇和C++编写的,是用GCJ编写的。 可悲的是,它几年前就已经停产了,Bitrot也开始进入 (例如,它在许多平台上不容易编译)。
Philip Stark决定寻找另一种选择,并找到了PyPDF 用纯python编写的库。他找不到一个工具 使用了图书馆,所以他开始自己写。
订书机的0.3版被弗雷德·温泽尔完全重构了。他也 增加了测试和强大的功能。
和pdftk一样,订书机也是一种命令行工具。如果要添加 gui,将其编译成二进制文件以用于您喜欢的平台,或者贡献 任何其他东西,请随意叉出并发送拉取请求。
更改日志(sorta)
- 0.3.3包含try-except块以支持旧式pypdf 如果需要的话。还修复了一些pypi问题,如丢失的许可证库 分类器和一些依赖项。
- 0.3.0由fred wenzel重构,现在使用pypdf2
- 0.2.0使用原始pypdf的功能完整性
许可证
订书机是根据BSD许可证发行的。bsd样式的副本 使用的许可证可以在文件LICENSE中找到。
用法
订书机有以下模式:
选择/删除(分别用sel和del调用)
sel也可用作cat以与My兼容 个人肌肉记忆。:)
使用select,您可以从pdf中选择页面并将它们连接起来 变成一个新的pdf文件。
语法:
stapler sel input1 page_or_range [page_or_range ...] [input2 p_o_r ...]
示例:
# concatenate a and b into output.pdf stapler sel a.pdf b.pdf output.pdf # generate a pdf file called output.pdf with the following pages: # 1, 4-8, 20-40 from a.pdf, 1-5 from b.pdf in this order stapler sel a.pdf 1 4-8 20-40 b.pdf 1-5 output.pdf # reverse some of the pages in a.pdf by specifying a negative range stapler sel a.pdf 1-3 9-6 10 output.pdf
delete命令的工作方式与select几乎完全相同,但相反。 它使用您未指定的页和范围。
分裂/爆发:
将指定的pdf文件拆分为单独的页面并分别写入 使用以下命名方案进入它自己的pdf文件:
${origname}_${zero-padded page no}.pdf
语法:
stapler split input1 [input2 input3 ...]
包含20页的foobar.pdf文件示例:
$ stapler split foobar.pdf $ ls foobar_01.pdf foobar_02.pdf ... foobar_19.pdf foobar_20.pdf
可以指定多个文件,它们将像调用 订书机的单个实例。
邮编:
使用zip,您可以从pdf中选择页面(比如select)。书页 每个pdf文件都以交错的方式合并在一起。这可能是 用于将奇数页的PDF和偶数页的PDF整理为 一个文件。
语法:订书机压缩输入1[范围[旋转][范围…][输入2 [范围…]…]超出
示例:
# combine a pdf with odd pages and a pdf with even pages into output.pdf stapler zip odd.pdf even.pdf output.pdf # combine a.pdf b.pdf and c.pdf, but use only some pages of c.pdf stapler zip a.pdf b.pdf c.pdf 1-3 output.pdf
如果其中一个范围短于其他范围,订书机将继续 合并其余页。
信息:
显示有关存储在PDF文件中的元数据的信息。
语法:
stapler info foo.pdf
示例输出:
\*\*\* Metadata for foo.pdf /ModDate: D:20100313082451+01'00' /CreationDate: D:20100313082451+01'00' /Producer: GPL Ghostscript 8.70 /Title: foo.pdf /Creator: PDFCreator Version 0.9.9 /Keywords: /Author: John Doe /Subject: