Linux中如何优雅的批量合并、拆分、加密pdf文件
生活随笔
收集整理的這篇文章主要介紹了
Linux中如何优雅的批量合并、拆分、加密pdf文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
痛點
在windows中合并個pdf還要讓你沖會員,真的是狗。linux下有沒有一款工具能完成對pdf的合并、切分的工具呢?
有:
PDFtk
功能
* Merge PDF Documents or Collate PDF Page Scans* Split PDF Pages into a New Document* Rotate PDF Documents or Pages* Decrypt Input as Necessary (Password Required)* Encrypt Output as Desired* Fill PDF Forms with X/FDF Data and/or Flatten Forms* Generate FDF Data Stencils from PDF Forms* Apply a Background Watermark or a Foreground Stamp* Report PDF Metrics, Bookmarks and Metadata* Add/Update PDF Bookmarks or Metadata* Attach Files to PDF Pages or the PDF Document* Unpack PDF Attachments* Burst a PDF Document into Single Pages* Uncompress and Re-Compress Page Streams* Repair Corrupted PDF (Where Possible)安裝
OS Version
CentOS Linux release 7.8.2003 (Core)安裝依賴
yum install -y gcc gcc-c++ libXrandr gtk2 libXtst libart_lgpl安裝 pdftk 2.02
yum localinstall https://www.linuxglobal.com/static/blog/pdftk-2.02-1.el7.x86_64.rpmpdftk 使用
合并pdf
pdftk ./PDF/*.pdf cat output merge.pdf也支持枚舉文件合并
pdftk ./PDF/1.pdf ./PDF/2.pdf cat output merge.pdf切分pdf
將PDF 拆分成單頁并將其數據轉儲到 doc_data.txt
Splits a single input PDF document into individual pages
pdftk merge.pdf burst目前沒找到按照大小切分的選項,這個選項打散成每頁之后再自己按需求merge
壓縮pdf
pdftk ./merge.pdf cat output merged-copmress.pdf compress壓縮效果不明顯,建議使用convert 、gs
品質和大小的trade-off
Pixelated (lossy):
convert input.pdf -compress Zip output.pdfUnpixelated (lossless, but may display slightly differently):
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -dQUIET -sOutputFile=output.pdf input.pdfissue
1、本地執行內存不足warning
GC Warning: Repeated allocation of very large block (appr. size 139264):May lead to memory leak and poor performance.如何將pdftk遷移到其他機器上執行
直接copy二進制文件過去,無法執行
pdftk ./PDF/*.pdf cat output merge.pdf pdftk: error while loading shared libraries: libgcj.so.10: cannot open shared object file: No such file or directory如何將該二進制命令所需庫文件復制一份?
ldd命令可以完成
ldd /bin/pdftk | egrep -o '/lib.*\.[0-9]' /lib64/libgcj.so.1 /lib64/libstdc++.so.6 /lib64/libm.so.6 /lib64/libgcc_s.so.1 /lib64/libc.so.6 /lib64/libpthread.so.0 /lib64/librt.so.1 /lib64/libdl.so.2 /lib64/libz.so.1 /lib64/ld-linux-x86-64.so.2使用如下小腳本將pdftk依賴的so文件copy到性能好一點的機器上去.
list=$(ldd /bin/pdftk | egrep -o '/lib.*\.[0-9]') for i in $list; do scp -p "$i" ip:/lib64/; donelibgcj.so.10 仍然缺失
發現該文件并沒有被copy過來,或許是這個正則寫的有點問題。后來發現并不是,因為在/usr目錄
解決: 使用find找到然后copy過去。沒有外網真的很痛苦。
如何改造這個正則以匹配到
? root@localhost /tmp ldd /bin/pdftk | egrep -o '*/lib.*\.[0-9]' /lib64/libgcj.so.1 /lib64/libstdc++.so.6 /lib64/libm.so.6 /lib64/libgcc_s.so.1 /lib64/libc.so.6 /lib64/libpthread.so.0 /lib64/librt.so.1 /lib64/libdl.so.2 /lib64/libz.so.1 /lib64/ld-linux-x86-64.so.2? root@localhost /tmp ldd /bin/pdftk | egrep -o '*/lib.*\.[0-9]+' /lib64/libgcj.so.10 /lib64/libstdc++.so.6 /lib64/libm.so.6 /lib64/libgcc_s.so.1 /lib64/libc.so.6 /lib64/libpthread.so.0 /lib64/librt.so.1 /lib64/libdl.so.2 /lib64/libz.so.1 /lib64/ld-linux-x86-64.so.2windows GUI的限制
free版本只能合并、拆分
pro版本split, merge, rotate, watermark, stamp and secure PDF pages and documents 。3,99$
總結
以上是生活随笔為你收集整理的Linux中如何优雅的批量合并、拆分、加密pdf文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vs2012密钥
- 下一篇: linux 其他常用命令