如何从命令行编辑 pdf 元数据?

如何从命令行编辑 pdf 元数据?

我需要一个命令行工具来编辑 pdf 文件的元数据。

我正在使用 Aiptek MyNote Premium 平板电脑在此设备上记录我的笔记和会议纪要,稍后将它们导入并使用 inkscape 和 ghostscript 的简单脚本自动将它们转换为 pdf。

是否有任何命令行工具可以向 pdf 的元数据添加一些类别,以便我以后可以按类别找到 pdf(例如使用 gnome-do)?

更新:我尝试使用 pdftk 解决问题,并且成功了,但 gnome-do 似乎不处理 pdf 元数据。有没有办法让 gnome-do 处理这个问题?

答案1

尝试一下;它可以从存储库中的exiftool包中获得。libimage-exiftool-perl

举例来说,如果您有一个名为 的 pdf 文件drawing.pdf,并且想要更新其元数据,请exiftool按如下方式使用该实用程序:

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

由于某种原因,输入的主题最终出现在 pdf 文件中元数据的关键字字段中。在某些情况下这不是问题,甚至是可取的,但是,这可能会有问题:evince 和 nautilus 元数据预览器不显示这一点,但 Adob​​e Acrobat 查看器和 PDF-XChange 查看器会显示。

如果您不使用开关,程序将创建原始文件的备份-overwrite_original。这意味着更新的 pdf 所在的文件夹中将存在副本。从上面的示例中,drawing.pdf_original将创建一个名为的文件。

使用覆盖开关需要您自担风险。我的建议是不要使用它,而是编写一些脚本将此文件移动到更好的位置以防万一。

答案2

您可以使用 编辑 PDF 元数据pdftk。查看update_info(或update_info_utf8如果您需要重音字符)参数。至于数据文件,下面是一个示例:

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

来源

答案3

使用 Ghostview

安装ghostscript方式:

$ sudo apt install ghostscript

创建一个名为类似内容的文件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 original.pdf pdfmarks

来源:http://milan.kupcevic.net/ghostscript-ps-pdf/

答案4

我需要清除作者从 LibreOffice 导出的 PDF 中的字段。上面列出的解决方案都不适用于我,所以我使用hexedit并覆盖了作者场。钝器但有效!

详细地:

  1. 跑步:

    $ hexedit file.pdf
    
  2. Tab切换到 ASCII。

  3. Ctrl+S搜索“作者”。

  4. 跳过<FEFF字段开头的。

  5. 改写0所有字符(除了我保留的三个0x03字符......YMMV)直到结束>

  6. Ctrl+X保存并退出。

相关内容