在文件之间传输元数据

Transfer metadata between files

我正在将许多 .pdf 图形转换为 .png,我想保留 .pdf 文件的元数据,例如,AuthorCreator标题,等等,在 .png.

有什么方法可以将元数据从 .pdf 文件转换为 .png 文件吗? 或者更一般地说,从一个文件到另一个文件?

我可以为特定情况提供带有 Unix 命令的版本 PDF->PNG(它可能适用于其他目标图片格式).也许类似的命令在Windows.

中可用

该方法包含两个通过管道传输的步骤:

  1. 获取 .pdf 文件的元数据

    pdfinfo myfile.pdf
    
  2. 将此元数据放入 .png 文件中。 (有关详细信息,请参阅 this post

    mogrify -comment "my metadata" myfile.png 
    

我发现 .png 文件没有 .pdf 那样容易管理元数据,因此,我只是使用 mogrify ImageMagick 的命令插入数据作为图像中的“评论”。此评论可以通过 运行 identify.exe -verbose plogo.png | grep -i "comment:"identify.exe -verbose plogo.png

检索

现在 Unix 中的管道是这样工作的:

  pdfinfo myfile.pdf | tr '\n' ' ' | xargs -I metadata mogrify -comment "metadata" myfile.png

注意:tr '\n' ' ' 管道将换行符转换为空格,因此 pdf 的整个元数据可以作为 one-line 字符串输入到 .png

如果只想select元数据的某些条目,可以使用grep命令进行过滤。例如,这里我们提取整个 .pdf 元数据的 titleauthorcreator

  pdfinfo myfile.pdf | grep -i 'title\|author\|creator' | tr '\n' ' ' | xargs -I metadata mogrify -comment "metadata" myfile.png

这是最实用和最强大的可能性 exiftool,适用于 Linux、MacOS 和 Windows 的应用程序。

您可以将所有 元数据标签从一个文件传输到另一个保留名称 并且任何文件格式.

exiftool -tagsfromfile <source-file> <target-file>

例如,这里我将元数据从 .pdf 文件传输到 .png 文件

exiftool -tagsfromfile mysource.pdf mytarget.png

过滤标签: 您还可以选择要传输的标签。例如,如果我只想传输titleauthorcreator,我设置选项-<tag>

exiftool -tagsfromfile mysource.pdf -title -author -creator mytarget.png