コマンドラインで.pdf画像をマージする方法はありますか?

コマンドラインで.pdf画像をマージする方法はありますか?

GIMPではPDFをインポートし、Flatten ImageGUIを使用してドロップダウンメニューから選択してPDFをマージできます(複数のレイヤーで作成されている場合)Image。その後、新しいファイル名を使用してPDFをエクスポートできます。

私はこれを自動化したい。端末を介してこれを行う方法はありますか?

答え1

Google では次の 2 つの方法を見つけました。Re:UNIXコマンドラインでPDFファイルをマージします。

方法#1 - Imagemagickを使用して変換:
$ convert -density 300 orig.pdf flattened.pdf 

メモ:この方法は平均品質であると報告されています。

方法#2 - pdf2psを使う - > ps2pdf:
$ pdf2ps orig.pdf - | ps2pdf - flattened.pdf

メモ:この方法は画質を維持することが知られています。

答え2

pdf2psconvert私にとっては、Ghostscript(gs)がうまくいきます。品質の劣化はほとんどなく、ファイルサイズも小さくなります。

gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-sColorConversionStrategy=/LeaveColorUnchanged  \
-dAutoFilterColorImages=true \
-dAutoFilterGrayImages=true \
-dDownsampleMonoImages=true \
-dDownsampleGrayImages=true \
-dDownsampleColorImages=true \
-sOutputFile=document_flat.pdf document_original.pdf

確立されたここ/以前に削除する方法の説明を参照してくださいLeaveColorUnchanged

答え3

Ghostscriptは、2016年後半に単純注釈のデフォルト設定を変更しました。

必要なPDFを簡単にマージするには-dPreserveAnnots=false

今簡単なコマンドライン

gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-dPreserveAnnots=false \
-sOutputFile=document_flat.pdf document_original.pdf

答え4

PDFをマージしたり、画像のみを含める必要があることがよくあります。ターミナルに入るよりノーチラスで早くやりたくて2つを作りました。Nautilusスクリプト以前の回答に基づいています。他の人に役立つように、このガイドラインを共有しています。

PDFをマージするスクリプトを作成します。

  1. Nautilusスクリプトフォルダに移動~/.local/share/nautilus/scripts/
  2. 新しいシェルスクリプトファイルを作成する(例FlattenPDF.sh:)
  3. ファイルを実行可能にします(例:Natiuls Properties→→ )PermissionsAllow executing file as program
  4. ファイルに次のテキストを挿入します。

#!/bin/bash

# Flattend PDFs    

IFS='
'
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
  if [ -f "$file" ]; then
    base=${file%.*}
    ext=${file##*.}
    newname=${base}_flat.pdf
    gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite -dPreserveAnnots=false -sOutputFile=$newname $file
  fi
done

画像のみ(検索または選択できないテキスト)PDFを生成するスクリプトを作成します。

  1. Nautilusスクリプトフォルダに移動~/.local/share/nautilus/scripts/
  2. 新しいシェルスクリプトファイルを作成する(例ImageOnlyPDF.sh:)
  3. ファイルを実行可能にします(例:Natiuls Properties→→ )PermissionsAllow executing file as program
  4. ファイルに次のテキストを挿入します。

#!/bin/bash

# Image-only PDFs    

IFS='
'
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
  if [ -f "$file" ]; then
    base=${file%.*}
    ext=${file##*.}
    newname=${base}_img.pdf
    gconvert -density 200 $file $newname
  fi
done

Nautilusを再起動します(例:nautilus -qExit Nautilusと入力し、DashでNautilusを再度開きます)。ファイルを右クリックすると、Scripts新しいスクリプトを含むメニューが表示されます。

関連情報