class PDF::Inspector::Text

Attributes

character_spacing[RW]
font_settings[RW]
horizontal_text_scaling[RW]
kerned[RW]
positions[RW]
size[RW]
strings[RW]
text_rendering_mode[RW]
word_spacing[RW]

Public Class Methods

new() click to toggle source
# File lib/pdf/inspector/text.rb, line 9
def initialize
  @font_settings = []
  @fonts = {}
  @font_objects = {}
  @strings = []
  @character_spacing = []
  @word_spacing = []
  @kerned = []
  @text_rendering_mode = []
  @positions = []
  @horizontal_text_scaling = []
end

Public Instance Methods

move_text_position(tx, ty) click to toggle source
# File lib/pdf/inspector/text.rb, line 35
def move_text_position(tx, ty)
  @positions << [tx, ty]
end
page=(page) click to toggle source
# File lib/pdf/inspector/text.rb, line 22
def page=(page)
  @state = PDF::Reader::PageState.new(page)
  page.fonts.each do |label, stream|
    @fonts[label]        = stream[:BaseFont]
    @font_objects[label] = PDF::Reader::Font.new(page.objects, stream)
  end
end
set_character_spacing(spacing) click to toggle source
# File lib/pdf/inspector/text.rb, line 57
def set_character_spacing(spacing)
  @state.set_character_spacing(spacing)
  @character_spacing << spacing
end
set_horizontal_text_scaling(scaling) click to toggle source
# File lib/pdf/inspector/text.rb, line 67
def set_horizontal_text_scaling(scaling)
  @state.set_horizontal_text_scaling(scaling)
  @horizontal_text_scaling << scaling
end
set_text_font_and_size(*params) click to toggle source
# File lib/pdf/inspector/text.rb, line 30
def set_text_font_and_size(*params)
  @state.set_text_font_and_size(*params)
  @font_settings << { name: @fonts[params[0]], size: params[1] }
end
set_text_rendering_mode(*params) click to toggle source
# File lib/pdf/inspector/text.rb, line 52
def set_text_rendering_mode(*params)
  @state.set_text_rendering_mode(*params)
  @text_rendering_mode << params[0]
end
set_word_spacing(*params) click to toggle source
# File lib/pdf/inspector/text.rb, line 62
def set_word_spacing(*params)
  @state.set_word_spacing(*params)
  @word_spacing << params[0]
end
show_text(*params) click to toggle source
# File lib/pdf/inspector/text.rb, line 39
def show_text(*params)
  @kerned << false
  @strings << @state.current_font.to_utf8(params[0])
end
show_text_with_positioning(*params) click to toggle source
# File lib/pdf/inspector/text.rb, line 44
def show_text_with_positioning(*params)
  @kerned << true
  # ignore kerning information
  show_text params[0].reject { |e|
    e.is_a? Numeric
  }.join
end