Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用特殊字符从ruby哈希中提取字段_Ruby_Hash_Pdf Generation - Fatal编程技术网

使用特殊字符从ruby哈希中提取字段

使用特殊字符从ruby哈希中提取字段,ruby,hash,pdf-generation,Ruby,Hash,Pdf Generation,我正在使用origami.pdf将pdf签名变为可见,同时我注意到我的签名是一个散列,因此我尝试捕获“位置”、“原因”、“日期”、“联系人信息”等字段 现在,我如何找到这些键的内容 我不能简单地做pdf.signature[/Location],因为ruby说这是一个语法错误 有什么想法吗?由于使用/Location生成Origami::Name对象似乎很难,我用另一种方法解决了这个问题: location = pdf.signature[pdf.signature.keys[5]] 输出返回

我正在使用origami.pdf将pdf签名变为可见,同时我注意到我的签名是一个散列,因此我尝试捕获“位置”、“原因”、“日期”、“联系人信息”等字段

现在,我如何找到这些键的内容

我不能简单地做
pdf.signature[/Location]
,因为ruby说这是一个语法错误


有什么想法吗?

由于使用/Location生成Origami::Name对象似乎很难,我用另一种方法解决了这个问题:

location = pdf.signature[pdf.signature.keys[5]]
输出返回葡萄牙,这是我将采用的方法,因为数组的键位置应该是静态的


虽然我查看了origami pdf的源代码,但我希望有一个更优雅的解决方案,,似乎输出中的每个键都是由
origami::Name.to
动态生成的。同时,从它的定义来看,它似乎只是将它与基础字符串值进行比较。这应该行得通,你试过了吗

signature[Origami::Name.new('Location')]

关于
pdf.signature['/Location']
?那么它就不匹配了,因为我的密钥周围没有引号:-我正在试图找出这些是否是字符串,因为我不知道这些密钥属于哪个Ruby数据类型。
pdf.signature.keys.first.class的输出是什么?有趣的:折纸:Name@MrWater:怎么样:
签名[Origami::Name.new('/Location')]
?谢谢Jorge,伟大的眼睛。在您的评论之后,我去检查了它,事实上,to将该标记添加到名称
#文件'lib/origami/name.rb',第106行;def to_s super(TOKENS.first+me.expand(@value))end
我想我必须用ruby代码分析更好地训练我的眼睛;-)@沃特先生,当然,很高兴我能帮忙。
location = pdf.signature[pdf.signature.keys[5]]
signature[Origami::Name.new('Location')]