pdf檔案多合一方法

2021-09-28 01:48:03 字數 1502 閱讀 2627

主要借助linux系統中的已有工具pdfunite進行多份pdf檔案合成

linux系統中自帶pdf處理工具,一般可以很簡單使用如下命令將兩份pdf合成乙份pdf檔案。

```bash

pdfunite 1.pdf 2.pdf 1_2.pdf

```就是上面這條命令這麼簡單。

如果遇到成千上萬份pdf檔案,合成乙份咋辦

借助pdfunite工具,我們可以使用shell指令碼,來完成重複合成工作。比如,1萬份pdf,我們可以先分成10組1000份pdf,將每組中的1000份pdf按組合成乙份pdf檔案。那麼這一步之後,就只剩下10個「經過1000份合成乙份的」pdf檔案。

這裡使用shell指令碼來實現上述合成原理。直接上指令碼原始碼。如下所示,該指令碼,預設當前已經存在n份pdf檔案。 

#!/bin/bash

#set -x

para=2

if [ $# -lt $para ];then

echo usage:$0 [pdf list] [n] [out_name]

exit 1

filist=$1

n=$2

n=0n_mod=0

out_n=0

out_name=$3

#real_num=`cat $list | wc -l`

pdf_files=

while read line

do pdf_files+=" $line"

let n=n+1

n_mod=$((n%n))

if [ $n_mod == 0 ];then

#echo $pdf_files

echo $n $out_n

pdfunite $pdf_files $out_n.$out_name.pdf

let out_n=out_n+1

pdf_files=""

#exit 1

fidone < $list

#let out_n=out_n+1

echo $out_n $n

pdfunite $pdf_files $out_n.$out_name.pdf

具體使用方法就是:

usage:./pdf_composite.sh [pdf list] [n] [out_name]

其中,[pdf list]——指當前pdf列表,可以使用ls *.pdf > list來生成

[n]——指一次pdfunite工具需要處理的檔案數量,這裡嘗試的是1000份檔案,貌似過大會有點意外問題。

[out_name]——指中間合成檔案的名字,我這裡隨便寫的com,中間檔案就會0~n.com.pdf

所以命令使用起來就是:./pdf_composite.sh list 1000 com

我實踐的時候是合成的4萬份pdf和8萬份pdf,合成出來的檔案,簡直不要太大,超過500mb的檔案,一般的pdf閱讀器,貌似搜尋多了會報記憶體不足,看來太大的pdf檔案不容易看啊。

linux密碼破解一方法

鬱悶,剛裝的系統,好像任是把密碼輸錯兩遍了,所以進不去了,好在baidu一下,好多破解方法,這裡也記錄一下,以後就不怕再輸錯或者忘了 1.在出現grub畫面時,用上下鍵選中你平時啟動linux的那一項,然後按e鍵 2.再次用上下鍵選中你平時啟動linux的那一項 類似於kernel boot vml...

C 基礎 一(方法詳解)

需要知道 類和方法的關係 方法和引數修飾符 自定義方法可以有或沒有引數,也可以有或沒有返回值。可以被各種關鍵字 static virtual public new等 修飾以限制其行為。c 引數修飾符 無 如果乙個引數沒有用引數修飾符標記,則認為它將按值傳遞,這意味著被呼叫的方法收到原始資料的乙份副本...

Delphi彙編級研究 一 方法呼叫

考慮如下這個簡單類ttest unit unit1 inte ce uses windows,sysutils,variants,classes type ttest class public j integer i integer function aa b,c integer integer s...