LGPL 3.0+
Origami::PDF.read(pdf_path, verbosity: Origami::Parser::VERBOSE_QUIET).pages
Origami::Page < Origami::Dictionary
Origami::Dictionary < Hash
イメージはハッシュ
Origami::Dictionary = {
Origami::Name => Origami::〇〇,
Origami::Name => Origami::〇〇,
Origami::Name => Origami::〇〇,
Origami::Name => Origami::〇〇,...
}
Origami::Name.valueでタイプっぽいものがとれた
# 例
Origami::PDF.read(pdf_path, verbosity: Origami::Parser::VERBOSE_QUIET)
.pages.first.map(&:value)
# 出力結果
[:Type, :Parent, :Resources, :MediaBox, :Contents, :Group, :Tabs]
Origami::PDF.read(pdf_path, verbosity: Origami::Parser::VERBOSE_QUIET).pages.each do |page|
p page.keys.map(&:value)
end
# 出力結果
...
[:Type, :Parent, :Resources, :Annots, :MediaBox, :Contents, :Group, :Tabs]
[:Type, :Parent, :Resources, :MediaBox, :Contents, :Group, :Tabs]
[:Type, :Parent, :Resources, :Annots, :MediaBox, :Contents, :Group, :Tabs]
[:Type, :Parent, :Resources, :MediaBox, :Contents, :Group, :Tabs]
[:Type, :Parent, :Resources, :Annots, :MediaBox, :Contents, :Group, :Tabs]
[:Type, :Parent, :Resources, :MediaBox, :Contents, :Group, :Tabs]
[:Type, :Parent, :Resources, :MediaBox, :Contents, :Group, :Tabs]
[:Type, :Parent, :Resources, :MediaBox, :Contents, :Group, :Tabs]
[:Type, :Parent, :Resources, :MediaBox, :Contents, :Group, :Tabs]
[:Type, :Parent, :Resources, :MediaBox, :Contents, :Group, :Tabs]
...
# keysでは無理だった
Origami::PDF.read(pdf_path, verbosity: Origami::Parser::VERBOSE_QUIET)
.pages.each { |k,v| puts k }
# 出力結果
# 1ページ目
/Page
2 0 R
<<
/Font <<
/F1 5 0 R
/F2 12 0 R
/F3 14 0 R
>>
/ExtGState <<
/GS10 10 0 R
/GS11 11 0 R
>>
/XObject <<
/Image16 16 0 R
/Meta18 18 0 R
>>
/ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
>>
0
4 0 R
<<
/Type /Group
/S /Transparency
/CS /DeviceRGB
>>
/S
# 2ページ目
...