日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux中如何优雅的批量合并、拆分、加密pdf文件

發布時間:2023/12/14 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.rpm

pdftk 使用

合并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.pdf

Unpixelated (lossless, but may display slightly differently):

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -dQUIET -sOutputFile=output.pdf input.pdf

issue

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/; done

libgcj.so.10 仍然缺失

發現該文件并沒有被copy過來,或許是這個正則寫的有點問題。后來發現并不是,因為在/usr目錄
解決: 使用find找到然后copy過去。沒有外網真的很痛苦。

find /usr -name "libgcj.so*" /usr/lib64/libgcj.so.10

如何改造這個正則以匹配到

? 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.2

windows GUI的限制

free版本只能合并、拆分
pro版本split, merge, rotate, watermark, stamp and secure PDF pages and documents 。3,99$

總結

以上是生活随笔為你收集整理的Linux中如何优雅的批量合并、拆分、加密pdf文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。