如何从命令行编辑pdf元数据?
我需要一个命令行工具来编辑pdf文件的元数据。
我正在使用Aiptek MyNote Premium平板电脑在此设备上编写我的笔记和分钟,稍后导入它们并使用inkscape和ghostscript使用简单的脚本自动将它们转换为pdf。
是否有任何命令行工具可以将一些类别添加到pdf的元数据中,所以我可以在以后的类别中找到pdf(例如使用gnome-do)?
更新:我尝试使用pdftk的解决方案,它的工作原理,但似乎gnome-do不会处理pdf元数据。 有没有办法让gnome-do这样做?
尝试使用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。
使用覆盖开关需要您自担风险,我的建议是不要使用它并编写脚本以将此文件移动到更好的位置以防万一。
您可以使用pdftk
编辑元数据。 查看update_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
( 来源 )
使用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/
详细说明pdftk
方法,这很好,因为它向您展示了所有正在设置的内容,同时允许您更改任何您喜欢的内容,这里有一个脚本(对于您的.bashrc
或其他别名文件)来执行此操作一个命令。 这将创建要编辑的文件的新版本,使用元数据文件打开您喜欢的编辑器,然后实现更改并将修改后的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
文件中,然后打开一个新终端即可使用。