如何解决在 Prawn 生成的 PDF 中看不到信息元数据
我正在使用 prawn
Ruby gem 在我的应用程序中生成 PDF 文件。我想在 PDF 中插入一些元数据并按照文档中的说明完成:
private def prawn_create_document(pdf_filespec,report_text,doc_short_name)
metadata = {
RBCreator: "RockBooks v#{VERSION} (#{PROJECT_URL})",RBCreated: Time.now.to_s,RBDocumentCode: doc_short_name.to_s,}
Prawn::Document.generate(pdf_filespec,info: metadata) do
...
但是,我在生成的 PDF 中没有看到此元数据。我在带有 KDE (Kubuntu 20.04) 的 Linux 上使用了 pdfinfo
和 okular
,在 Mac OS 上使用了 Preview
。
为什么会这样?
解决方法
问题不在于 PDF 生成,而在于用于查看生成的 PDF 的工具。
可以使用以下工具成功显示自定义元数据:
-
exiftool
(在基于 Ubuntu 的 Linux 上使用sudo apt install libimage-exiftool-perl
安装) - Apache Tika(Java 库),可在 JRuby 中使用
rika
gem 访问(请参阅 https://github.com/keithrbennett/rika)。这是一个脚本,可用于显示多种不同类型文件的元数据:
#!/usr/bin/env jruby
# You will probably want to disable warnings by adding `2>/dev/null` to your command,as in:
# view-metadata my.pdf 2>/dev/null
require 'rika'
require 'amazing_print'
raise 'Syntax is view-metadata filespec' if ARGV.empty?
filespec = ARGV.first
puts "Metadata for file #{filespec}:\n\n"
ap Rika.parse_metadata(filespec)
我的文件的输出包括:
"RBDocumentCode" => "balance_sheet","pdf:docinfo:custom:RBDocumentCode" => "balance_sheet","RBCreated" => "2021-01-03 17:03:50 -0500","RBCreator" => "RockBooks v0.7.1 (https://github.com/keithrbennett/rock_books)","pdf:docinfo:custom:RBCreator" => "RockBooks v0.7.1 (https://github.com/keithrbennett/rock_books)","pdf:docinfo:custom:RBCreated" => "2021-01-03 17:03:50 -0500",
我不知道为什么以两种形式创建它们(没有前缀,并且以 pdf:docinfo:custom:
为前缀)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。