像专业人士一样把PDF切碎。
deba-bocho的Python项目详细描述
像专业人士一样分割PDF:
% bocho my-fancy-file.pdf --pages 1 3 5 6 10 --angle 30 --zoom 1.6 my-fancy-file-bocho-630x290.png
获取一个pdf文件并从所选页面创建“堆叠页面”预览。
它接受一系列定制输出的选项(传递-h标志以获取详细信息)。
安装
需要ImageMagick,因此您可能需要,例如:
% sudo apt-get install imagemagick
如果要使用Wand而不是直接调用convert,还需要执行一些附加步骤,例如:
% sudo apt-get install libmagickwand-dev % pip install wand
有关详细信息,请参阅安装说明。
在OS X上,您需要使用自制程序来获得低级依赖项:
% brew install ghostscript imagemagick
一旦这些都整理好了,你只需要pip install deba-bocho。
皮比:哦,天哪!
对于简单的操作,cpython和pypy在性能上没有太大差别。 如果你想使用shadow效果,那就另当别论了。 在我的笔记本电脑上运行不科学的基准测试…
Python2.7:
% time bocho /tmp/report.pdf --preset example --shadow ... bocho /tmp/report.pdf --preset example --shadow 35.89s user 0.15s system 99% cpu 36.132 total
皮比:
% time bocho /tmp/report.pdf --preset example --shadow ... bocho /tmp/report.pdf --preset example --shadow 4.10s user 0.18s system 99% cpu 4.297 total
使pypy的速度大约是python 2.7的10倍。 没有--shadow的同一进程在两个实现中大约需要2.5秒。
用法
有关用法的信息,请运行bocho --help。如果您想将其用作模块:
>>> import bocho >>> help(bocho.assemble)
配置
如果您将多次使用相同的选项,那么可能值得在config.ini文件中创建一个预设(请参见config.example.ini或下面的示例开始)。
默认情况下,bocho将检查$HOME/.config/bocho/config.ini,因此最好将配置保存在那里,但是可以将--config选项和路径传递到另一个位置。
[example]pages=1,3,5,7,9width=630height=290border=4reuse=truedelete=trueverbose=trueuse_convert=trueparallel=5
您可以通过呼叫:
bocho /path/to/file.pdf --preset example [--config /path/to/config.ini]
待办事项
- 正确转动机具`
- 允许使用“缩放”选项`
- 可选的阴影`
- 使阴影在方向上更智能(它们当前是统一的,不考虑角度/变换)
- 使基本边缘分隔符成为可选的`
- 自动间距作为选项以及固定像素间距
- 水平和垂直间距`
- 水平和垂直偏移`
- 可选的从右到左堆叠`
- 处理非A4宽高比输入文档
- 可选应用变换:
- 仿射(为了垂直/水平剪切效应而放弃)
- shear(通过创建简化仿射变换应用)
- 拉伸(可以以与剪切类似的方式实现)
- 透视图
- 指定自定义宽度/高度时,请确保切片PNG足够大
- 固定X和Y间距计算以考虑任何应用的旋转和变换
- 允许可配置转换(可能使用在.ini文件中定义的预设)
- 删除pypdf依赖项`
- 使用imagemagick绑定,而不是使用subprocess来调用convert(wand)
- 在两次运行之间有选择地重复使用页面`
- 允许用户为PDF到PNG的转换指定分辨率∮
- 文件`
- 显示各种选项效果的精美图片
- 使用正确的日志记录
许可证
见LICENSE.txt。 测试图像来自USC-SIPI图像数据库(http://sipi.usc.edu/database/)。 测试pdf是“分布式时空干扰对齐”(arXiv:1405.0032)。