pdf{get; set;}
本帖最后由 1291500406 于 2020-12-21 09:57 编辑方法一:
操作命令官网(https://www.pdflabs.com/docs/pdftk-cli-examples/)上有举了一些例子,这里整理成批处理命令方便小白,相关命令保存为.bat文件,然后把希望操作的pdf文件和.bat文件置于同一目录即可。合并文件夹内所有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文件,如果有朋友不方便安装(像我的上家公司)可以直接下载附件来操作。 https://images2015.cnblogs.com/blog/617957/201612/617957-20161220220016401-398899957.png
缺点:不允许文件出现空格
优点:用户无需安装exe
方法二:
;;获取页数
(setq pdfobj (vlax-create-object "AcroExch.PDDoc"))
(vlax-invokepdfobj 'open "d:\\1.pdf")
(vlax-invokepdfobj 'GetNumPages)
;;旋转90度
(setq GetDoc (vlax-create-object "AcroExch.PDDoc"))
#<VLA-OBJECT CAcroPDDoc 1adcadd4>
(setqPDPage(vlax-invokeGetDoc '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
很多PDF工具
本身就提供了命令行操作 masterlong 发表于 2020-6-11 19:33
很多PDF工具
本身就提供了命令行操作
我知道Word.Application可以 ,在探索 本帖最后由 masterlong 于 2020-6-11 19:44 编辑
你可以先看看
有个 libiconv2.dll 文件
和这个是配套的
之前的漏了
已经补上去了
充分利用本身已有的功能
再去实现没有的功能
masterlong 发表于 2020-6-11 19:41
你可以先看看
有个 libiconv2.dll 文件
我不知道是不是和这个工具配套的
谢谢 大师帮忙 PDF免费的全功能的库极少,至少我没找到一个。有个dos版的pdftk已经是见到过的功能最强大的免费软件了。另外LSP其实跟PDF无关,其它更强大的工具都很难处理PDF,建议放弃LSP的念头。 mikewolf2k 发表于 2020-6-12 09:31
PDF免费的全功能的库极少,至少我没找到一个。有个dos版的pdftk已经是见到过的功能最强大的免费软件了。另 ...
lisp局限性的确实有点大 mikewolf2k 发表于 2020-6-12 09:31
PDF免费的全功能的库极少,至少我没找到一个。有个dos版的pdftk已经是见到过的功能最强大的免费软件了。另 ...
AcroExch.PDDoc 1291500406 发表于 2020-7-17 15:12
AcroExch.PDDoc
这是adobe professional的,非免费。
页:
[1]