pdf - PDF 文件元数据的批处理编辑器
问题描述
抱歉,如果以前有人问过这个问题。我正在批量编辑许多 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 文件。不知道这是什么...
解决方案
Ghostscript 根本不编辑PDF 元数据。它最多会生成一个新的 PDF 文件,其中的元数据是您想要的,但内容(即实际的 PDF 操作)将不一样,并且某些“元数据”可能会丢失,因为 Ghostscript 的 pdfwrite 设备不保留它从输入到输出。
显然 exiftool 可以只改变元数据,所以你最好使用它。我有理由相信你可以编写一个 shell 脚本来做你想做的任何事情。
推荐阅读
- html - 如何删除微弱的线条并在我的桌子上添加阴影(仅在 IE/edge 中发生)?
- python - 多线程/进程加速双循环内的函数?
- laravel - Laravel 验证调用数组上的成员函数失败()
- docker - 通过 shell 脚本查找隐藏和非隐藏文件
- azure - az cmd“帐户清除”在“az storage blob upload-batch”后失败
- r - R: min() 函数返回不正确的答案
- angular - 使用 Azure AD 保护单页谷歌应用引擎 webapp
- unity3d - Raycast 仅返回 false,即使预期为 true
- python - 不同长度的多个数据帧之间的共同值
- xamarin - Xamarin WatchOS 错误 MT5210:本机链接失败,未定义符号:_GetProductInfo