zoukankan      html  css  js  c++  java
  • pdftk简介

    项目中的pdf需要添加背景图,但是wkhtmltopdf不是很友好,图片的大小位置有点偏移,于是就用下面这个目录。

    CENTOS服务器 6 和 7 有一些区别
    CENTOS6

    sudo yum install libgcj
    sudo rpm -i pdftk-2.02-1.*.rpm
    

    CENTOS7
    由于CENTOS7的yum库中不再支持libgcj
    找到了一个老外的
    x86_64

    yum localinstall https://www.linuxglobal.com/static/blog/pdftk-2.02-1.el7.x86_64.rpm
    

    i686

    yum localinstall https://www.linuxglobal.com/static/blog/pdftk-2.02-1.el7.i686.rpm
    

    简介

    PDFtk 是什么?我觉得官网的一句话解释得很好。

    If PDF is electronic paper, then PDFtk is an electronic staple-remover, hole-punch, binder, secret-decoder-ring, and X-Ray-glasses. PDFtk is a simple tool for doing everyday things with PDF documents.

    其官方网站为: http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit

    PDFtk 目前分为三个版本:

    • PDFtk Server:命令行工具。支持 windows、Linux、Mac。
    • PDFtk Free:图形界面基础免费版;仅限 windows 用户;功能仅限于 PDF 合并和分割;
    • PDFtk Pro:图形界面专业收费版;仅限 windows 用户,可以对 PDF 文档进行合并、分割、旋转、加水印、加邮戳、加密。

    对于 Linux 用户,唯一的选择是免费的 PDFtk Server,其功能与收费 PDFtk Pro 完全相同,只是没有 GUI 而已。作者还是很厚道的。

    Linux 的各个发行版的官方源中基本都有该软件,直接 apt-get 或者 yum 安装即可。

    功能

    • 合并 PDF;
    • 分割 PDF 页面;
    • 旋转 PDF 文档或页面;
    • PDF 解密;(不是破解)
    • PDF 加密;
    • 用 X/FDF 填写 PDF 表格;
    • 从 PDF 表格中生成 PDF Data Stencils;
    • 加背景水印或前景印章;
    • 报告 PDF Metrics,书签和元数据;
    • 增加 / 更新 PDF 书签或元数据;
    • 给 PDF 页面或文档加附件;
    • 解压 PDF 附件;
    • 分解 PDF 文档为多个单页;
    • 解压缩和重压缩页面流;
    • 修复受损的 PDF 文档;

    这功能完全可以与 Adobe Acrobat 相媲美了,更重要的是 PDFtk 支持 Linux 且完全免费。(个人用户免费,若用于商业用途需付费)。

    用法示例

    具体选项看这里: http://www.pdflabs.com/docs/pdftk-man-page/

    下面给出一些常见的例子。例子原文

    扫描一本书,odd.pdf 为书的全部奇数页,even.pdf 为书的全部偶数页,下面的命令可以将两个 pdf 合并成页码正常的书:

    pdftk A=odd.pdf B=even.pdf shuffle A B output collated.pdf
    

    如果 odd.pdf 是逆序的:

    pdftk A=odd.pdf B=even.pdf shuffle Aend-1 B output collated.pdf
    

    加密 PDF:

    pdftk secured.pdf input_pw foopass output unsecured.pdf
    

    PDF 128 位加密,保留全部权限:

    pdftk 1.pdf output 1.128.pdf owner_pw foopass
    

    PDF 128 位加密,保留全部权限,打开文档需输入密码 “baz”:

    pdftk 1.pdf output 1.128.pdf owner_pw foo user_pw baz
    

    PDF 128 位加密,打开文档需输入密码 “baz”,保留打印之外的其他权限:

    pdftk 1.pdf output 1.128.pdf owner_pw foo user_pw baz allow printing
    

    合并 in1.pdf 和 in2.pdf 到新 PDF 中:

    pdftk in1.pdf in2.pdf cat output out1.pdf
    

    或(使用句柄):

    pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf
    

    或(使用通配符):

    pdftk *.pdf cat output combined.pdf
    

    去除 in1.pdf 中的第 13 页,并创建 out1.pdf:

    pdftk in.pdf cat 1-12 14-end output out1.pdf
    

    pdftk A=in1.pdf cat A1-12 A14-end output out1.pdf
    

    对输出进行 40 位加密,撤销所有权限,设置 owner 密码为 foopass:

    pdftk 1.pdf 2.pdf cat output 3.pdf encrypt_40bit owner_pw foopass
    

    合并两个文件,其中一个需要被加密。对输出不加密:

    pdftk A=secured.pdf 2.pdf input_pw A=foopass cat output 3.pdf
    

    解压 PDF 页面流,然后就可以在文本编辑器中编辑 PDF 文件:

    pdftk doc.pdf output doc.unc.pdf uncompress
    

    压缩 PDF:

    pdftk mydoc.pdf output mydoc.clear.pdf compress
    

    修复破损的 PDF:

    pdftk broken.pdf output fixed.pdf
    

    将一个 PDF 文档分割成一页一个文档:

    pdftk in.pdf burst
    

    将一个 PDF 文档分割成一页一个文档,并加密,允许低质量的打印:

    pdftk in.pdf burst owner_pw foopass allow DegradedPrinting
    

    获取 PDF 问的元数据和书签信息:

    pdftk in.pdf dump_data output report.txt
    

    将 PDF 第一页顺时针旋转 90 度:

    pdftk in.pdf cat 1east 2-end output out.pdf
    

    将整个 PDF 文档旋转 180 度:

    pdftk in.pdf cat 1-endsouth output out.pdf
    

  • 相关阅读:
    大数据开源组件汇总
    centos6环境下大数据组件单独安装配置
    大数据平台架构组件选择与运用场景
    [LeetCode] 210. 课程表 II
    [LeetCode] 209. 长度最小的子数组
    [LeetCode] 208. 实现 Trie (前缀树)
    [LeetCode] 207. 课程表
    [LeetCode] 206. 反转链表
    [LeetCode] 205. 同构字符串
    [LeetCode] 204. 计数质数
  • 原文地址:https://www.cnblogs.com/dalianpai/p/13606087.html
Copyright © 2011-2022 走看看