bdr*_*529 121 command-line pdf metadata
我需要一个命令行工具来编辑 pdf 文件的元数据。
我正在使用 Aiptek MyNote Premium 平板电脑在此设备上编写我的笔记和会议记录,稍后导入它们并使用使用inkscape 和 ghostscript 的简单脚本将它们自动转换为 pdf。
是否有任何命令行工具可以将某些类别添加到 pdf 的元数据中,以便我稍后可以按类别找到 pdf(例如使用 gnome-do)?
更新:我尝试了 pdftk 的解决方案并且它有效,但似乎 gnome-do 不处理 pdf-metadata。有没有办法让 gnome-do 做到这一点?
Sab*_*con 140
试试 exiftool,它可以从存储库中的 libimage-exiftool-perl 包中获得。
例如,如果您有一个名为 drawing.pdf 的 pdf 文件,并且您想更新其元数据,请以这种方式使用实用程序 exiftool:
exiftool -Title="This is the Title" -Author="Happy Man" -Subject="PDF Metadata" drawing.pdf
Run Code Online (Sandbox Code Playgroud)
出于某种原因,输入的主题最终出现在 pdf 文件中元数据的关键字字段中。在某些情况下这不是问题,甚至是可取的,但是,这可能是有问题的,evince 和 nautilus 元数据预览器不显示这一点,但 Adobe Acrobat 查看器和 PDF-XChange 查看器可以。
如果您不使用,程序将创建原始文件的备份;-overwrite_original
开关,这意味着更新的 pdf 所在的文件夹中将存在重复项。从上面的例子; 一个名为 ; 将创建drawing.pdf_original。
使用覆盖开关的风险由您自己承担,我的建议是不要使用它并编写一些脚本来将此文件移动到更好的位置以防万一。
Oll*_*lli 22
您可以使用 编辑元数据pdftk
。查看update_info
参数。至于数据文件,下面是一个例子:
InfoKey: Title
InfoValue: Mt-Djing: multitouch DJ table
InfoKey: Subject
InfoValue: Dissertation for Master degree
InfoKey: Keywords
InfoValue: DJing, NUI, multitouch, user-centered design
InfoKey: Author
InfoValue: Pedro Lopes
Run Code Online (Sandbox Code Playgroud)
(来源)
Ser*_*ndt 10
安装ghostscript
:
$ sudo apt install ghostscript
Run Code Online (Sandbox Code Playgroud)
创建一个以pdfmarks
类似内容命名的文件:
[ /Title (Document title)
/Author (Author name)
/Subject (Subject description)
/Keywords (comma, separated, keywords)
/ModDate (D:20061204092842)
/CreationDate (D:20061204092842)
/Creator (application name or creator note)
/Producer (PDF producer name or note)
/DOCINFO pdfmark
Run Code Online (Sandbox Code Playgroud)
然后将此pdfmarks
文件与 PDF、PS 或 EPS 输入文件合并:
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf original.pdf pdfmarks
Run Code Online (Sandbox Code Playgroud)
来源:http : //milan.kupcevic.net/ghostscript-ps-pdf/
小智 7
我需要清空从 LibreOffice 导出的 PDF 中的“作者”字段。上面列出的解决方案都不适合我,因此我使用hexedit
并覆盖了作者字段。钝器但有效!
详细地:
跑步:
$ hexedit file.pdf
Run Code Online (Sandbox Code Playgroud)
Tab切换到 ASCII。
Ctrl+S搜索“作者”。
跳过<FEFF
字段开头的 。
写下0
所有字符(除了我保留了三个0x03
字符...... YMMV)直到结束>
。
Ctrl+X保存并退出。
小智 6
我广泛测试了 pdftk 和 exiftool 的功能。我在命令行和图形窗口中都使用了 exiftool。这些已经针对小型、中型和非常大的 PDF 文档进行了测试,发现在最大和最复杂的 PDF 文档中存在问题。根据我的经验,pdftk / exiftool 仅对于小型和简单格式的 PDF 文档具有顶级功能。对于大型且复杂的 PDF 文档(例如,超过 80 页的多种字体),在编辑元数据后,图像和/或字符可能会从最后几页中脱落。解决方案可能是使用我刚才看到的Ghostview。毫无疑问,这些计划会随着时间的推移而改进。
与此同时,我找到了一种解决方案,在 Ubuntu 中使用当前形式的 Wine 和一个单窗口小型免费软件程序,该程序也适用于这些大型、复杂的 PDF 文档:BeCyPDFMetaEdit(例如可以从 SoftPedia 等免费软件库中获得)。
要详细说明该pdftk
方法,这很好,因为它向您显示了正在设置的所有内容,同时允许您更改您喜欢的任何内容,这里有一个脚本(用于您的.bashrc
或其他别名文件)使用一个命令来完成。这会创建您要编辑的文件的新版本,使用元数据文件打开您喜欢的编辑器,然后实施您的更改并将修改后的 PDF 文件的文件创建/修改时间设置为与原始文件相同。要使用它,在资源化.bashrc
文件后,只需输入
editPDFmetadata myfile.pdf
这是别名:
editPDFmetadata() {
OUTPUT="${1}-new.pdf"
METADATA="tmp${1}-report.txt"
pdftk "${1}" dump_data output "$METADATA"
$EDITOR "$METADATA"
pdftk "${1}" update_info "$METADATA" output "$OUTPUT"
touch -r "${1}" "${OUTPUT}"
}
Run Code Online (Sandbox Code Playgroud)
只需将上面的定义放入.bashrc
您的主文件夹中的文件中,然后打开一个新终端即可使用。
归档时间: |
|
查看次数: |
97239 次 |
最近记录: |