言う:

言う:

目標は、以下を使用して.pdfファイルセットを列挙することです。コマンドラインツール。理想的には、無料のオープンソースパッケージがCatalinaとUbuntu 20.04で列挙されたタスクを実行するのに役立ちます。

ファイルセットを想定します。

  1. ファイル1.pdf
  2. ファイル2.pdf
  3. ファイル3.pdf

操作:

  1. カウンタを100に一度だけ初期化し、絶対に100にリセットしないでください。
  2. file1.pdfの最初のページから始める:
  3. 「myText[counter]」で右下を列挙(表示)します。
  4. カウンターの増加と次のページの表示
  5. ファイルの最後のページが列挙されている場合は、すべてのファイルのすべてのページが列挙されるまで、次のファイルに対してプロセスが繰り返されます。次のファイルは同じカウンタを使用して継続され、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$sseq -f "%05g"

groff -msマクロは抑制されたヘッダーを適用し.ds CH.nr FM 0.125フッター余白の高さを減らし、各「ページ」が改ページを持つフッターにすぎません。.bp +1

このテキストをパイプしてPDFを作成し、groff -Tpdfstdinpdftkを入力ファイルにパイプし、最後に出力ファイルに書き込みます。-multistamped

これがハッキングなら、groff実際に正しく使う方法をご存知の方にお詫び申し上げます。

おすすめ記事