本帖最后由 1291500406 于 2020-12-21 09:57 编辑
方法一:
操作命令合并文件夹内所有pdf,输出combind.pdf @echo offpdftk %cd%\*.pdf cat output %cd%\combined.pdf
把多个PDF的不同页面组合成一个新的PDF文档,这里取base1.pdf的第一页,base2.pdf的第一页,输出combined2.pdf @echo offpdftk A=%cd%\base1.pdf B=%cd%\base2.pdf cat A1 B1 output %cd%\combined2.pdf
旋转PDF,旋转的角度为上北下南左西右东(north\south\west\east),如下例,combined第一页向右旋转而其他保持不变则旋转参数为1east 2-end,如果全部旋转则是1-endeast(注意:这里没有空格) @echo offpdftk %cd%\combined.pdf cat 1east 2-end output %cd%\rotate.pdf
使用128位强度对PDF进行所有者加密(owner password),加密后PDF文件处于只读状态,没有所有者密码不能对该PDF做各种文件操作。这里对base1.pdf进行所有者加密,密码为foopass,输出文件为poopass.128.pdf @echo offpdftk %cd%\base1.pdf output %cd%\foopass.128.pdf owner_pw foopass
同上,同时给PDF加上访问者密码(会弹出一个密码输入框)此例原文件为in.pdf,加密后文件为mydoc.128.pdf,所有者密码为foopass,访问者密码为baz @echo offpdftk %cd%\base1.pdf output %cd%\foopassbaz.128.pdf owner_pw foopass user_pw baz
解密PDF文档,input_pw空一格,然后是所有者密码,这里输入文件为加密文件foopassbaz.128.pdf,输出文件nopass.pdf,输出文件会去掉所有者密码和访问者密码。 @echo offpdftk %cd%\foopassbaz.128.pdf input_pw foopass output %cd%\nopass.pdf
加水印,以下命令会把stamp.pdf当成背景水印(即stamp.pdf叠加在底层)合到base1上并输出stampback.pdf,如果想把stamp.pdf合成base1的前景水印(即stamp.pdf叠加在表层),把以下的backgroud换成stamp即可。 @echo offpdftk %cd%\base1.pdf background %cd%\stamp.pdf output %cd%\stampback.pdf
以上就是常用的pdf文件操作的相关命令了,实际上PDFtk还有提供了不少功能,具体可与参照官网和输入在CMD输入pdftk --help查看相关资料,这里就不一一写出来了,毕竟小白们没用到那么细致的功能。 附件附件提供了自己测试用的pdf和小工具libiconv2.dll和pdftk.exe文件,如果有朋友不方便安装(像我的上家公司)可以直接下载附件来操作。
缺点:不允许文件出现空格
优点:用户无需安装exe
方法二:
;;获取页数
(setq pdfobj (vlax-create-object "AcroExch.PDDoc"))
(vlax-invoke pdfobj 'open "d:\\1.pdf")
(vlax-invoke pdfobj 'GetNumPages)
;;旋转90度
(setq GetDoc (vlax-create-object "AcroExch.PDDoc"))
#<VLA-OBJECT CAcroPDDoc 1adcadd4>
(setq PDPage(vlax-invoke GetDoc 'AcquirePage 1))
#<VLA-OBJECT CAcroPDPage 1adcaf84>
(vlax-invoke PDPage 'getRotate)
0
(vlax-invoke PDPage 'setRotate 90)
-1
(vlax-invoke PDPage 'getRotate)
90
;;获取纸张大小
(setq GetPoint (vlax-invoke PDPage 'GetSize))
#<VLA-OBJECT CAcroPoint 1adcb0ec>
(vlax-get GetPoint 'x)
1191
(vlax-get GetPoint 'y)
842
|