目標は、以下を使用して.pdfファイルセットを列挙することです。コマンドラインツール。理想的には、無料のオープンソースパッケージがCatalinaとUbuntu 20.04で列挙されたタスクを実行するのに役立ちます。
ファイルセットを想定します。
- ファイル1.pdf
- ファイル2.pdf
- ファイル3.pdf
操作:
- カウンタを100に一度だけ初期化し、絶対に100にリセットしないでください。
- file1.pdfの最初のページから始める:
- 「myText[counter]」で右下を列挙(表示)します。
- カウンターの増加と次のページの表示
- ファイルの最後のページが列挙されている場合は、すべてのファイルのすべてのページが列挙されるまで、次のファイルに対してプロセスが繰り返されます。次のファイルは同じカウンタを使用して継続され、100 にリセットされません。
あなたの目標を達成するためのソリューション/サンプルは高く評価されます。
言う:
すべてのページには固有のページ番号が必要です。各文書が10ページで構成されている場合、最終ページ番号は129になります。
答え1
質問を編集するために更新中...
#!/bin/bash
label="$1" #the label to be added to the footer
from=$2 #the starting number
#for each pdf in this directory
for input in *.pdf; do
#compose an output file name
output=${input%.*}.numbered.pdf
#count the pages
pagenum=$(pdftk "$input" dump_data | grep "NumberOfPages" | cut -d":" -f2)
#calculate the last page no
to=$(($from+$pagenum-1))
(echo -e ".nr FM 0.125i\n.ds CH"; for s in $(seq -f "%05g" $from $to); do
echo -e ".ds RF $label $s \n.bp +1"; done) |
groff -ms -Tpdf |
pdftk "$input" multistamp - output "$output"
#get ready for the next file
from=$((to +1))
done
groff -ms
必要なテキストを含む右フッターを除いて、空白のページで基本文書を作成します。ページ番号はゼロで埋められます。.ds RF
$label $s
$s
seq -f "%05g"
groff -ms
マクロは抑制されたヘッダーを適用し.ds CH
、.nr FM 0.125
フッター余白の高さを減らし、各「ページ」が改ページを持つフッターにすぎません。.bp +1
このテキストをパイプしてPDFを作成し、groff -Tpdf
stdinpdftk
を入力ファイルにパイプし、最後に出力ファイルに書き込みます。-
multistamped
これがハッキングなら、groff
実際に正しく使う方法をご存知の方にお詫び申し上げます。