ghostscriptがPDFメタデータをワイプしないようにする方法


10

GhostscriptはPDFメタデータをワイプしauthor, title, subjectます。メタデータに触れないようにghostscriptに指示するにはどうすればよいですか 次のように呼び出します。

gs \
  -dBATCH                    \
  -dNOPAUSE                  \
  -sOutputFile=<output_file> \
  -sDEVICE=pdfwrite          \
  -dPDFSETTINGS=/ebook       \
  <input_file>

なぜGhostscriptを使用しているのですか?おそらく、あなたがしていることを何でも行う別の方法があるでしょう。入力がPostscriptファイルでない場合、Ghostscriptを使用することは一般的ではありません。
Gilles「SO-邪悪なことをやめなさい」

3
@Gilles PDFの画像をダウンサンプリングして、サイズを縮小します。PDFを入力として使用することは珍しくありません。ツールは、pdf2psたとえば変換にゴーストスクリプトを使用し、と一緒に出荷されgsます。
Marco、

OK、GhostscriptはPDFファイルの画像をダウンサンプリングする通常の方法のようですが、オープンソースのネイティブPDF操作ツールはその点で欠けているようです。それまたはImageMagickは、画像のみを表示し、PDFメタデータを気にしません。
Gilles「SO-悪をやめなさい」

2
ImageMagickはPDFの処理にゴーストスクリプトを使用します。
Marco

@Gilles:「入力がPostscriptファイルでない場合、Ghostscriptを使用することは一般的ではありません。」-そんなことはありません、Gilles!私は、PDF-> PDF処理を行うために、毎日、毎日使用しています。
カートファイフル2015年

回答:


6

どうやら、ghostscriptを使用しているときにPDFメタデータを保持することは不可能です。これは、最初にを使用してメタデータをファイルに保存しpdftk、次にでファイルを圧縮しghostscript 、最後にも使用してメタデータを書き戻す回避策pdftkです。

INPUTPDF=<input_file>
OUTPUTPDF=<output_file>
TMPPDF=$(mktemp)
METADATA=$(mktemp)

# save metadata
pdftk "$INPUTPDF" dump_data_utf8 > "$METADATA"

# compress
gs                       \
  -q                     \
  -sOutputFile="$TMPPDF" \
  -sDEVICE=pdfwrite      \
  -dNOPAUSE              \
  -dBATCH                \
  -dPDFSETTINGS=/ebook   \
  "$INPUTPDF"

# restore metadata
pdftk "$TMPPDF" update_info_utf8 "$METADATA" output "$OUTPUTPDF"

# clean up
rm -f "$TMPPDF" "$METADATA"

編集:これはghostscriptのバグです。バグレポートと、これが発生するはずがないことの確認をご覧ください。


pdftks dump_data(_utf8)は文字通り中国語のラベルを出力します。私もpdftkのフォーラムを見つけることができませんでした:(
Stefan K.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.