【问题标题】:Batch editor for PDF file metadataPDF 文件元数据的批处理编辑器
【发布时间】:2019-12-01 13:41:08
【问题描述】:

如果之前有人问过这个问题,我们深表歉意。我正在批量编辑许多 PDF 文件的元数据(主要是标题、作者、关键字)。我可以单独编辑它们,但我有超过 100 个文件要编辑(对于 Calibre),我找不到任何允许我这样做的程序。

是否可以使用 EXIFTOOL 或 Ghostscript 编写脚本?

更新:这就是我到目前为止所得到的......

import exiftool
import csv

files = csv.csv2sequence('metadata.csv')

for file in files:
    filename     = file[0]
    set_title    = '-title='    +file[1]
    set_author   = '-author='   +file[2]
    set_creator  = '-creator='  +file[3]
    set_producer = '-producer=' +file[4]
    with exiftool.ExifTool() as et:
        et.execute(set_title,filename)
        et.execute(set_author,filename)
        et.execute(set_creator,filename)
        et.execute(set_producer,filename)

... 元数据存储在 csv 文件中。但是,当我运行它时出现此错误...

TypeError: sequence item 0: expected a bytes-like object, str found

... 来自 exiftool.py 文件。不知道这是什么...

【问题讨论】:

    标签: pdf batch-processing ghostscript exiftool


    【解决方案1】:

    Ghostscript 根本不编辑 PDF 元数据。最多它会生成一个新的 PDF 文件,其中的元数据是您想要的,但内容(即实际的 PDF 操作)不会相同,并且一些“元数据”可能会丢失,因为 Ghostscript 的 pdfwrite 设备不保留它从输入到输出。

    显然 exiftool 可以更改元数据,因此您最好使用它。我有理由相信你可以编写一个 shell 脚本来做你想做的任何事情。

    【讨论】:

    • 谢谢 - 我将尝试使用 smarnach.github.io/pyexiftool,因为我更熟悉 Python。
    • 需要指出两点。首先,您可能不需要编写 exiftool 脚本,而且这样做通常会很慢,因为 exiftool 对性能的最大影响是它的启动时间。 ExifTool 本身具有非常强大的批处理能力。如果您在创建命令时需要帮助,请查看 ExifTool Forums。其次,由于 ExifTool 更改元数据的方式,它所做的任何更改都是可逆的。请参阅PDF Tags 下的第三段。
    猜你喜欢
    • 2013-02-23
    • 1970-01-01
    • 2013-09-23
    • 2010-09-06
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多