• 强大的pdf文件操作小工具--PDFtk


    内容转载自博客https://www.cnblogs.com/basterdaidai/p/6204518.html

    在做项目中,是会经常遇到pdf合并,加水印等类似需求的。

    认识PDFtk

    PDFtk(官网:https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/)是一款国外开发的软件,目标是使PDF更容易操作。官网上挂着一些客户软件的核心功能其实也是要收费才能用,但是它有一个服务器版本是免费的,这就是本篇文章的主角。PDFtk支持合并、旋转、加水印、加附件、加密、

    下载安装

     下载地址:https://www.pdflabs.com/tools/pdftk-server/

    选择符合操作系统的版本下载,安装过程就不表了,小白式的安装就可以。安装成功后安装目录的bin目录会有libiconv2.dll和pdftk.exe文件,这就是操作pdf的PDFtk工具。环境变量也多了这个工具的路径。如果有像博主这样公司不给安装软件的,复制这两个文件就可以。

    操作命令

    官网(https://www.pdflabs.com/docs/pdftk-cli-examples/)上有举了一些例子,这里整理成批处理命令方便小白,相关命令保存为.bat文件,然后把希望操作的pdf文件和.bat文件置于同一目录即可。

    合并文件夹内所有pdf,输出combind.pdf

    @echo off
    pdftk %cd%*.pdf cat output %cd%combined.pdf

    把多个PDF的不同页面组合成一个新的PDF文档,这里取base1.pdf的第一页,base2.pdf的第一页,输出combined2.pdf

    @echo off
    pdftk A=%cd%ase1.pdf B=%cd%ase2.pdf cat A1 B1 output %cd%combined2.pdf

    旋转PDF,旋转的角度为上北下南左西右东(northsouthwesteast),如下例,combined第一页向右旋转而其他保持不变则旋转参数为1east 2-end,如果全部旋转则是1-endeast(注意:这里没有空格)

    @echo off
    pdftk %cd%combined.pdf cat 1east 2-end output %cd%
    otate.pdf

    使用128位强度对PDF进行所有者加密(owner password),加密后PDF文件处于只读状态,没有所有者密码不能对该PDF做各种文件操作。这里对base1.pdf进行所有者加密,密码为foopass,输出文件为poopass.128.pdf

    @echo off
    pdftk %cd%ase1.pdf output %cd%foopass.128.pdf owner_pw foopass

    同上,同时给PDF加上访问者密码(会弹出一个密码输入框)此例原文件为in.pdf,加密后文件为mydoc.128.pdf,所有者密码为foopass,访问者密码为baz

    @echo off
    pdftk %cd%ase1.pdf output %cd%foopassbaz.128.pdf owner_pw foopass user_pw baz

    解密PDF文档,input_pw空一格,然后是所有者密码,这里输入文件为加密文件foopassbaz.128.pdf,输出文件nopass.pdf,输出文件会去掉所有者密码和访问者密码。

    @echo off
    pdftk %cd%foopassbaz.128.pdf input_pw foopass output %cd%
    opass.pdf

    加水印,以下命令会把stamp.pdf当成背景水印(即stamp.pdf叠加在底层)合到base1上并输出stampback.pdf,如果想把stamp.pdf合成base1的前景水印(即stamp.pdf叠加在表层),把以下的backgroud换成stamp即可。

    @echo off
    pdftk %cd%ase1.pdf background %cd%stamp.pdf output %cd%stampback.pdf

    以上就是常用的pdf文件操作的相关命令了,实际上PDFtk还有提供了不少功能,具体可与参照官网和输入在CMD输入pdftk --help查看相关资料,这里就不一一写出来了,毕竟小白们没用到那么细致的功能。

    附件

    附件提供了自己测试用的pdf和小工具libiconv2.dll和pdftk.exe文件,如果有朋友不方便安装(像我的上家公司)可以直接下载附件来操作。

    pdf小工具

    参考:

    http://blog.csdn.net/fresherman/article/details/5979204

    https://www.pdflabs.com/docs/pdftk-cli-examples/

    内容补充

    cmd控制台调用方法

    合并PDF

    PDF加水印

    C++调用的方法

    合并PDF

        //如果pdftk.exe所在路径有空格,那么它的路径要用"给包起来
        char cmd_exe[1000];
        sprintf_s(cmd_exe,"D:\1\2\pdftk.exe %s %s cat output %s", "D:\1\2\1.pdf", "D:\1\2\2.pdf", "D:\1\2\11.pdf");
        WinExec(cmd_exe,SW_HIDE);

    PDF加水印

        //如果pdftk.exe所在路径有空格,那么它的路径要用"给包起来
        char cmd_exe[1000];
        sprintf_s(cmd_exe,"D:\1\2\pdftk.exe %s background %s output %s", "D:\1\2\1.pdf", "D:\1\2\3.pdf", "D:\1\2\222.pdf");
        WinExec(cmd_exe,SW_HIDE);

    Caesar卢尚宇

    2021年2月27日

    作者: 阿飞

    出处: https://www.cnblogs.com/nxopen2018/>

    关于作者:......

    如有问题, 可在底部(留言)咨询.

  • 相关阅读:
    WebSVN 2.3.3
    webSVN客户端(转) initOS的日志 网易博客
    分享:httping 2.0 发布,测试 HTTP 连接的工具
    ThriftUsageC++ Thrift Wiki
    硬盘接口:SCSI、IDE与SATA的区别
    把event sql导入数据库难点
    cpu插槽 LGA 1155
    Processing简介
    技嘉主板GAB75MD3V产品规格
    pci Express
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14457365.html
Copyright © 2020-2023  润新知