walk_resources (PDF::Reader::Content)

    # File lib/pdf/reader/content.rb, line 389
        def walk_resources(resources)
          return unless resources.respond_to?(:[])

          resources = resolve_references(resources)

          # extract any procset information
          if resources[:ProcSet]
            callback(:resource_procset, resources[:ProcSet])
          end

          # extract any xobject information
          if resources[:XObject]
            @xref.object(resources[:XObject]).each do |name, val|
              callback(:resource_xobject, [name, @xref.object(val)])
            end
          end

          # extract any extgstate information
          if resources[:ExtGState]
            @xref.object(resources[:ExtGState]).each do |name, val|
              callback(:resource_extgstate, [name, @xref.object(val)])
            end
          end

          # extract any colorspace information
          if resources[:ColorSpace]
            @xref.object(resources[:ColorSpace]).each do |name, val|
              callback(:resource_colorspace, [name, @xref.object(val)])
            end
          end

          # extract any pattern information
          if resources[:Pattern]
            @xref.object(resources[:Pattern]).each do |name, val|
              callback(:resource_pattern, [name, @xref.object(val)])
            end
          end

          # extract any font information
          if resources[:Font]
            @xref.object(resources[:Font]).each do |label, desc|
              desc = @xref.object(desc)
              @fonts[label] = PDF::Reader::Font.new
              @fonts[label].label = label
              @fonts[label].subtype = desc[:Subtype] if desc[:Subtype]
              @fonts[label].basefont = desc[:BaseFont] if desc[:BaseFont]
              @fonts[label].encoding = PDF::Reader::Encoding.new(@xref.object(desc[:Encoding]))
              @fonts[label].descendantfonts = desc[:DescendantFonts] if desc[:DescendantFonts]
              if desc[:ToUnicode]
                # this stream is a cmap
                begin
                  @fonts[label].tounicode = PDF::Reader::CMap.new(desc[:ToUnicode])
                rescue
                  # if the CMap fails to parse, don't worry too much. Means we can't translate the text properly
                end
              end
              callback(:resource_font, [label, @fonts[label]])
            end
          end
        end