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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM