Bagaimana cara mengedit metadata pdf dari baris perintah?

83

Saya memerlukan alat baris perintah untuk mengedit metadata file pdf.

Saya menggunakan tablet Aiptek MyNote Premium untuk menulis catatan dan menit saya di perangkat ini, mengimpornya nanti dan mengonversinya menjadi pdf secara otomatis dengan skrip sederhana menggunakan inkscape dan ghostscript.

Apakah ada alat baris perintah untuk menambahkan beberapa kategori ke metadata pdf, sehingga saya dapat menemukan pdf nanti (misalnya dengan gnome-do) berdasarkan kategori?

Pembaruan: Saya mencoba solusi dengan pdftk dan berfungsi, tetapi tampaknya gnome-do tidak menangani pdf-metadata. Apakah ada cara untuk mendapatkan gnome-do untuk melakukan itu?

bdr529
sumber

Jawaban:

101

Cobalah exiftool, itu tersedia dari paket libimage-exiftool-perl di repositori.

Sebagai contoh, Jika Anda memiliki file pdf bernama drawing.pdf dan Anda ingin memperbarui metadata-nya, Gunakan utilitas, exiftool, dengan cara ini:

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

Untuk beberapa alasan Subjek yang dimasukkan berakhir di bidang kata kunci metadata dalam file pdf. bukan masalah dalam beberapa kasus, bahkan diinginkan, namun, ini mungkin bermasalah, karena dan pratinjau nautilus metadata tidak menunjukkan ini tetapi Adobe Acrobat viewer dan PDF-XChange viewer tidak.

Program ini akan membuat cadangan dari file asli jika Anda tidak menggunakan; -overwrite_originalberalih, ini berarti duplikat akan ada di folder tempat pdf yang diperbarui adalah. Dari contoh di atas; sebuah file bernama; drawing.pdf_original akan dibuat.

gunakan saklar timpa dengan risiko Anda sendiri, saran saya adalah jangan menggunakannya dan menulis sesuatu untuk memindahkan file ini ke lokasi yang lebih baik untuk berjaga-jaga.

Sabacon
sumber
16
Perhatikan bahwa: " Semua suntingan metadata dapat dibalik . Meskipun ini biasanya dianggap sebagai keuntungan, ini merupakan masalah keamanan potensial karena informasi lama tidak pernah benar-benar dihapus dari file."
gila tentang natty
5
@nuttyaboutnatty jika Anda ingin membersihkan semua entri metadata yang tersisa dan tidak terpakai, Anda dapat membuat linear file PDF segera setelah memprosesnya dengan exiftool. Ini dijelaskan lebih rinci dalam inti Github ini .
Glutanimate
9
@nuttyaboutnatty Yah, tentu saja itu bukan sumber yang berwenang tetapi itu hanya karena tidak ada yang pernah meluangkan waktu untuk menulis satu. Namun, saya dapat memastikan bahwa metode yang dijelaskan oleh penulis berfungsi. Cobalah sendiri: 1.) Ambil PDF yang memiliki beberapa tag dan "hapus" semua metadata exiftool -overwrite_original -all:all="" file.pdf; 2.) Gunakan exiftool -PDF-update:all= file.pdfuntuk mengonfirmasi bahwa masih ada metadata lama; 3.) linierkan file dengan qpdf --linearize file.pdf; 4.) Periksa lagi, seperti yang Anda lakukan pada 2.); semua metadata harus hilang;
Glutanimate
4
5.) mengkonfirmasi bahwa file telah dibersihkan dari semua metadata dengan melihat kamus PDF ( pdfinfo -meta file.pdf)
Glutanimate
1
Bekerja dengan sempurna. Saya secara teratur ingin menyalin metadata dari satu PDF ke yang lain, dalam hal exiftool -overwrite_original -tagsFromFile <srcfile> <destfile>ini yang saya butuhkan (opsi -overwrite_originalmenimpa yang asli <destfile>).
AstroFloyd
15

Anda dapat mengedit metadata dengan menggunakan pdftk. Periksa update_infoparameter. Adapun file data, di bawah ini adalah contoh:

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

( Sumber )

Olli
sumber
1
Oke, ini berarti saya harus mengekspor metadata ke file teks, mengeditnya dan mengimpor kembali file teks. Apakah ada cara untuk secara langsung mengatur metadata tunggal dari command-line?
bdr529
Mungkin ada, tetapi saya tidak dapat menemukannya.
Olli
pdftktampaknya karakter Unicode dalam metadata.
Mekanik siput
1
Saya punya masalah menggunakan pdftkpdf baru (versi yang lebih baru dienkripsi melalui AESV2). Sepertinya sudah dihentikan. exiftoolbekerja lebih baik.
s1lv3r
2
untuk menggunakan pdftk, yang perlu Anda lakukan adalah: 1) pdftk book.pdf dump_data output report.txt2) edit report.txt 3)pdftk book.pdf update_info report.txt output bookcopy.pdf
craq
6

Menggunakan Ghostview

Buat file bernama "pdfmarks" dengan konten ini:

[ /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

lalu gabungkan pdfmarksfile ini dengan file input PDF, PS atau EPS:

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

Sumber: http://milan.kupcevic.net/ghostscript-ps-pdf/

Serge Stroobandt
sumber
0

Untuk menguraikan pdftkmetode ini, yang bagus karena ini menunjukkan kepada Anda segala sesuatu yang sedang diatur, pada saat yang sama memungkinkan Anda untuk mengubah apa pun yang Anda suka, berikut adalah skrip (untuk .bashrcfile alias Anda atau lainnya) untuk melakukannya dengan satu perintah. Ini membuat versi baru dari file yang ingin Anda edit, membuka editor favorit Anda dengan metadatafile, dan kemudian mengimplementasikan perubahan Anda dan menetapkan waktu pembuatan / modifikasi file pada file PDF yang dimodifikasi agar sama dengan aslinya. Untuk menggunakannya, setelah melakukan resourcing .bashrcfile Anda , ketikkan saja

editPDFmetadata myfile.pdf

Inilah alias:

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}
}

Cukup letakkan definisi di atas ke dalam .bashrcfile di folder rumah Anda, lalu buka terminal baru dan siap digunakan.

CPBL
sumber