コマンドラインからPDFメタデータを編集するには?


83

PDFファイルのメタデータを編集するためのコマンドラインツールが必要です。

Aiptek MyNote Premiumタブレットを使用して、このデバイスでメモや議事録を書き、後でインポートし、inkscapeとghostscriptを使用した簡単なスクリプトでPDFに自動的に変換します。

PDFのメタデータにいくつかのカテゴリを追加するコマンドラインツールはありますか。カテゴリごとに後で(たとえばgnome-doで)PDFを見つけることができますか。

更新:私はpdftkで解決策を試みましたが、動作しますが、gnome-doはpdf-metadataの面倒を見ないようです。gnome-doにそれをさせる方法はありますか?

回答:


101

exiftoolを試してください。リポジトリのlibimage-exiftool-perlパッケージから入手できます。

例として、drawing.pdfというpdfファイルがあり、そのメタデータを更新する場合は、ユーティリティexiftoolを次のように使用します。

exiftool -Title="This is the Title" -Author="Happy Man" -Subject="PDF Metadata" drawing.pdf

何らかの理由で、入力された件名がPDFファイルのメタデータのキーワードフィールドに表示されます。場合によっては問題ではなく、望ましいこともありますが、これは問題になる可能性があり、証拠であり、nautilusメタデータプレビューアはこれを表示しませんが、Adobe AcrobatビューアーとPDF-XChangeビューアーは表示します。

使用しない場合、プログラムは元のファイルのバックアップを作成します。-overwrite_originalスイッチ。これは、更新されたpdfがあるフォルダーに複製が存在することを意味します。上記の例から。という名前のファイル。drawing.pdf_originalが作成されます。

自己の責任において上書きスイッチを使用してください。念のため、このファイルを使用して、このファイルをより良い場所に移動するスクリプトを作成しないことをお勧めします。


16
なお:すべてのメタデータの編集が可逆的である、これが正常に有利と考えられるが、それはある。潜在的なセキュリティ上の問題古い情報がされているため、実際には削除されませんファイルから。」
ナッツについてのナッツ

5
@nuttyaboutnattyすべての残りのメタデータエントリと未使用のメタデータエントリをパージする場合は、exiftoolで処理した直後にPDFファイルを線形化できます。これについては、このGithubの要点で詳しく説明しています。
グルタニメート14

9
@nuttyaboutnattyまあ、もちろんそれは信頼できるソースではありませんが、それは誰もそれを書くのに時間をかけたことがないからです。しかし、著者が説明した方法が機能することを保証できます。自分で試してみてくださいexiftool -overwrite_original -all:all="" file.pdf。2.)を使用exiftool -PDF-update:all= file.pdfして、まだ古いメタデータが存在することを確認します。3.)qpdf --linearize file.pdf;でファイルを線形化します 4.)2.)で行ったように、もう一度確認します。すべてのメタデータがなくなるはずです。
グルタニメート

4
5.)ファイルは、PDFの辞書(を見て、すべてのメタデータをパージされたことを確認pdfinfo -meta file.pdf
Glutanimate

1
完全に動作します。あるPDFから別のPDFにメタデータを定期的にコピーしたいのですが、その場合exiftool -overwrite_original -tagsFromFile <srcfile> <destfile>に必要なものです(-overwrite_original元のオプションが上書きされます<destfile>)。
AstroFloyd

15

を使用してメタデータを編集できますpdftkupdate_infoパラメータを確認してください。データファイルについては、以下に例を示します。

InfoKey: Title
InfoValue: Mt-Djing: multitouch DJ table
InfoKey: Subject
InfoValue: Dissertation for Master degree
InfoKey: Keywords
InfoValue: DJing, NUI, multitouch, user-centered design
InfoKey: Author
InfoValue: Pedro Lopes

ソース


1
わかりました。これは、メタデータをテキストファイルにエクスポートし、編集して、テキストファイルを再インポートする必要があることを意味します。コマンドラインから単一のメタデータを直接設定する方法はありますか?
bdr529

あるかもしれませんが、私はそれを見つけることができませんでした。
オッリ

pdftkメタデータのUnicode文字のようです。
機械式カタツムリ

1
pdftk新しいPDFでの使用に問題がありました(新しいバージョンはAESV2で暗号化されています)。中止されたようです。exiftoolうまく機能していました。
s1lv3r

2
pdftkを使用するには、1)pdftk book.pdf dump_data output report.txt2)report.txtを編集3)pdftk book.pdf update_info report.txt output bookcopy.pdf
craq

6

Ghostviewを使用する

このコンテンツで「pdfmarks」という名前のファイルを作成します。

[ /Title (Document title)
  /Author (Author name)
  /Subject (Subject description)
  /Keywords (comma, separated, keywords)
  /ModDate (D:20061204092842)
  /CreationDate (D:20061204092842)
  /Creator (application name or creator note)
  /Producer (PDF producer name or note)
  /DOCINFO pdfmark

次に、このpdfmarksファイルをPDF、PS、またはEPS入力ファイルと組み合わせます。

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf no_marks.pdf pdfmarks

ソース:http : //milan.kupcevic.net/ghostscript-ps-pdf/


0

pdftkメソッドを詳しく説明すると、設定されているすべてのものが表示されるので便利ですが、好きなものを変更できると同時に.bashrc、1つのコマンドでそれを実行するスクリプト(または他のエイリアスファイル用)があります。これにより、編集するファイルの新しいバージョンが作成され、メタデータファイルでお気に入りのエディターが開き、変更が実装され、変更されたPDFファイルのファイル作成/変更時間が元のファイルと同じに設定されます。それを使用するには、.bashrcファイルをリソースに追加した後、単に入力します

editPDFmetadata myfile.pdf

エイリアスは次のとおりです。

editPDFmetadata() {
OUTPUT="${1}-new.pdf"
METADATA="tmp${1}-report.txt"
pdftk ${1} dump_data output $METADATA
$EDITOR $METADATA
pdftk ${1} update_info $METADATA  output $OUTPUT
touch -r ${1} ${OUTPUT}
}

上記の定義を.bashrcホームフォルダーのファイルに配置し、新しいターミナルを開くだけで使用できるようになります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.