我有一个使用exiftool
的python脚本来更新给定PDF中的元数据。可以在此处找到exiftool
的文档和下载:PyExifTool
以下是我目前的代码:
if __name__ == '__main__':
from exif_tool import ExifTool, fsencode
source_file = 'D:\\my_file.pdf'
author = 'some author'
keywords = 'some keywords'
subject = 'some subject'
title = 'some title'
with ExifTool('exiftool.exe') as et:
params = map(fsencode, ['-Title=%s' % title,
'-Author=%s' % author,
'-Creator=%s' % author,
'-Subject=%s' % subject,
'-Keywords=%s' % keywords,
'%s' % source_file])
et.execute(*params)
os.remove('%s_original' % source_file)
for key, value in dict(et.get_metadata(source_file)).items():
if key.startswith('PDF:') and ('Author' in key or 'Keywords' in key or 'Title' in key or 'Subject' in key):
print key, value
>>> PDF:Keywords [u'some', u'keywords']
>>> PDF:Title some title
>>> PDF:Subject some subject
>>> PDF:Author some author
上述代码相应地工作和更新PDF元数据。但是,当我在Adobe Acrobat或Adobe Reader中查看PDF元时,主题和关键字的值都显示在关键字字段中。
总而言之,在大多数情况下,这不是一个关键问题,但我可以预见会收到很多关于此的投诉。
我可能只是缺少一些小配置或设置,但我已阅读文档,但我找不到任何可以解决此问题的方法。
有人有任何想法或想法吗?
答案 0 :(得分:1)
我能够找到解决方案来解决这个问题,这就是我想出来的。为了防止主题和关键字在关键字字段中合并,还需要使用Exiftool
更新一些标记。
params = map(fsencode, ['-PDF:Subject=%s' % subject,
'-XMP:Subject=',
'-PDF:Title=%s' % title,
'-XMP:Title=',
'-PDF:Author=%s' % author,
'-XMP:Author=',
'-PDF:Keywords=%s' % keywords,
'-XMP:Keywords=',
'-overwrite_original',
'%s' % source_file])