Files
news.gitea.happylizard.me/bin/gems/pdf-reader-2.14.1/lib/pdf/reader/resources.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

102 lines
3.2 KiB
Ruby

# coding: utf-8
# typed: strict
# frozen_string_literal: true
module PDF
class Reader
# mixin for common methods in Page and FormXobjects
#
class Resources
def initialize(objects, resources)
@objects = objects
@resources = resources
end
# Returns a Hash of color spaces that are available to this page
#
# NOTE: this method de-serialise objects from the underlying PDF
# with no caching. You will want to cache the results instead
# of calling it over and over.
#
def color_spaces
@objects.deref_hash!(@resources[:ColorSpace]) || {}
end
# Returns a Hash of fonts that are available to this page
#
# NOTE: this method de-serialise objects from the underlying PDF
# with no caching. You will want to cache the results instead
# of calling it over and over.
#
def fonts
@objects.deref_hash!(@resources[:Font]) || {}
end
# Returns a Hash of external graphic states that are available to this
# page
#
# NOTE: this method de-serialise objects from the underlying PDF
# with no caching. You will want to cache the results instead
# of calling it over and over.
#
def graphic_states
@objects.deref_hash!(@resources[:ExtGState]) || {}
end
# Returns a Hash of patterns that are available to this page
#
# NOTE: this method de-serialise objects from the underlying PDF
# with no caching. You will want to cache the results instead
# of calling it over and over.
#
def patterns
@objects.deref_hash!(@resources[:Pattern]) || {}
end
# Returns an Array of procedure sets that are available to this page
#
# NOTE: this method de-serialise objects from the underlying PDF
# with no caching. You will want to cache the results instead
# of calling it over and over.
#
def procedure_sets
@objects.deref_array!(@resources[:ProcSet]) || []
end
# Returns a Hash of properties sets that are available to this page
#
# NOTE: this method de-serialise objects from the underlying PDF
# with no caching. You will want to cache the results instead
# of calling it over and over.
#
def properties
@objects.deref_hash!(@resources[:Properties]) || {}
end
# Returns a Hash of shadings that are available to this page
#
# NOTE: this method de-serialise objects from the underlying PDF
# with no caching. You will want to cache the results instead
# of calling it over and over.
#
def shadings
@objects.deref_hash!(@resources[:Shading]) || {}
end
# Returns a Hash of XObjects that are available to this page
#
# NOTE: this method de-serialise objects from the underlying PDF
# with no caching. You will want to cache the results instead
# of calling it over and over.
#
def xobjects
dict = @objects.deref_hash!(@resources[:XObject]) || {}
TypeCheck.cast_to_pdf_dict_with_stream_values!(dict)
end
end
end
end