请问有人能确认GhostScript在MacOS High Sierra下生成PDF元数据空白的问题吗?
关于MacOS 10.13 High Sierra下GhostScript生成PDF元数据为空的问题确认与解决
我确实在MacOS 10.13 High Sierra上遇到过完全相同的GhostScript元数据丢失问题!在10.12 Sierra及更早版本中,GhostScript生成PDF时会正常保留或继承原文件的Title、Author等元数据,但High Sierra上确实存在这个兼容性bug,应该是系统底层PDF相关API变动或者该版本GhostScript适配问题导致的。
下面分享几个我亲测有效的解决办法:
通用PDFmarks模板批量处理
不用每个文件都手动写PDFmarks,你可以创建一个通用的元数据模板文件,比如命名为metadata-template.ps,内容如下:/Title (默认文档标题) def /Author (你的名称) def /Subject (文档主题) def /Keywords (关键词1,关键词2) def /DOCINFO pdfmark之后处理文件时,只需要把这个模板和原PS文件一起传给GhostScript即可:
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=final.pdf original.ps metadata-template.ps如果要批量处理多个文件,写个简单的Shell脚本循环就能搞定,节省大量手动操作的时间。
升级GhostScript到兼容版本
我当时把系统自带的旧版GhostScript(通常是9.2x版本)升级到9.50+版本后,这个元数据丢失的问题就自动消失了。你可以用Homebrew安装最新兼容High Sierra的版本:brew install ghostscript安装完成后,用
which gs确认当前使用的是Homebrew安装的版本(路径通常是/usr/local/bin/gs),而不是系统自带的旧版本。用pdftk批量补全元数据
如果已经生成了无元数据的PDF,也可以用pdftk工具批量添加元数据。先创建一个metadata.txt文件,格式如下:Title: 目标文档标题 Author: 作者名称 Subject: 文档主题 Keywords: 相关关键词然后执行命令:
pdftk input.pdf update_info metadata.txt output output-with-metadata.pdf
内容的提问来源于stack exchange,提问作者benwiggy
相关产品推荐
相关产品推荐

