背景
PDF是一种非常常见的格式,最近填写申请时,上传的材料都要求是PDF文件,经常需要图片转PDF,或者把图片追加到现有的PDF中。像WPS这种办公软件或者PDF软件都有这些功能,但要么是收费的,要么阉割功能限制图片或者PDF数量;也有一些提供在线简单处理PDF功能的网站,但又担心隐私泄露,索性在git上找了编辑PDF的轮子,自己使用撸一个小工具。
lwe命令行
我在之前使用Go实现了一个帮助开发者提高效率的命令行工具lwe,因此想在lwe原有功能的基础上增加一组PDF处理的相关命令。在github上调研之后,最终确定使用pdfcpu提供的能力完成我的需求,pdfcpu是一个Go实现的PDF文件处理的开源项目,功能十分强大,感兴趣的可以去看看。
在lwe中实现了两个pdf开头的子命令,lwe下载地址:
-
pdfm合并PDF或者图片 -
pdfc从PDF中截取指定的页
pdfm
按照指定的文件顺序,将多个PDF、图片文件合并成一个PDF文件
使用方式:
Usage:
lwe pdfm [flags]
Examples:
lwe pdfm out.pdf in1.pdf,in2.jpg,*.png,in3.pdf ...
举例说明如何使用
win下,cmd或者powerShell中执行命令
./lwe.exe pdfm out.pdf in1.pdf,in2.jpg,*.png,in3.pdf
mac下同理,下载对应shell文件, 更多可以查看,lwe的安装、使用
这条命令的功能是:将当前目录下的in1.pdf、in2.jpg、后缀是.png、以及in3.pdf,按照顺序合并生成一个名为out.pdf的新PDF
注:
- 指定输入文件时,同时支持PDF和图片。另,如果输入单个图片等价与将图片转换成PDF格式
- 目前支持的图片格式png|jpg|jpeg
- 指定输入文件时,支持文件名模糊匹配文件,模糊时多个文件之间顺序随机
pdfc
按照指定的页码,从PDF中截取对应的页生成PDF文件
使用方式:
Usage:
lwe pdfc [flags]
Examples:
lwe pdfc [-m] in.pdf outDir 2,3,5,7-9,15 ...
Flags:
-h, --help help for pdfc
-m, --merge merge all selected pages into one PDF,default is false
举例说明如何使用
./lwe.exe pdfc -m in.pdf outfile/ 2,3,5,7-9,15
这条命令的功能是:将当前目录下的in1.pdf文件中的第2、3、5、7、8、9、15页截取出来,并合并在outfile/目录下生成一个新的PDF文件。
注:
- 支持按照范围指定页面,比如7-9,等价7,8,9
- 可选参数-m,默认情况下,每个截取的页都生成独立对应的PDF,如果想要截取的结果合并到一个PDF中,命令中添加-m。
其它
lwe是一个用Go实现,帮助开发者提高工作效率的跨平台命令行工具,除了pdfm pdfc命令外,还实现了很多其它实用的功能命令:
-
Git增强多仓库操作能力:glog、gl、gcl、gst
-
由建表SQL语句转换成Java Bean、Go结构体、Json等
-
将SQL语句转换成ElasticSearch查询的DSL语言
-
PDF工具:合并多个图片或者PDF、截取PDF指定页
-
其它小工具
- 获取Navicat连接配置中的密码
- 同步两个目录下文件
- 格式化请求url
lwe项目已开源,对lwe感兴趣或者想要学习Go都可以参与进来!