Class: PDF::Reader::Turtletext::Textangle
- Inherits:
-
Object
- Object
- PDF::Reader::Turtletext::Textangle
- Defined in:
- lib/pdf/reader/turtletext/textangle.rb
Overview
A DSL syntax for text extraction.
textangle = PDF::Reader::Turtletext::Textangle.new(reader) do |r|
r.page = 1
r.below = "Electricity Services"
r.above = "Gas Services by City Gas Pte Ltd"
r.right_of = 240.0
r.left_of = "Total ($)"
end textangle.text
Instance Attribute Summary collapse
- #above(*args) ⇒ Object
- #below(*args) ⇒ Object
- #left_of(*args) ⇒ Object
-
#page ⇒ Object
Returns the value of attribute page.
-
#reader ⇒ Object
readonly
Returns the value of attribute reader.
- #right_of(*args) ⇒ Object
Instance Method Summary collapse
-
#initialize(turtletext_reader, &block) ⇒ Textangle
constructor
turtletext_reader
is a PDF::Reader::Turtletext. -
#text ⇒ Object
Returns the text.
Constructor Details
#initialize(turtletext_reader, &block) ⇒ Textangle
turtletext_reader
is a PDF::Reader::Turtletext
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/pdf/reader/turtletext/textangle.rb', line 18 def initialize(turtletext_reader,&block) @reader = turtletext_reader @page = 1 if block_given? if block.arity == 1 yield self else instance_eval &block end end end |
Instance Attribute Details
#above(*args) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/pdf/reader/turtletext/textangle.rb', line 30 def above(*args) if value = args.first @above = value end @above end |
#below(*args) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/pdf/reader/turtletext/textangle.rb', line 37 def below(*args) if value = args.first @below = value end @below end |
#left_of(*args) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/pdf/reader/turtletext/textangle.rb', line 44 def left_of(*args) if value = args.first @left_of = value end @left_of end |
#page ⇒ Object
Returns the value of attribute page.
14 15 16 |
# File 'lib/pdf/reader/turtletext/textangle.rb', line 14 def page @page end |
#reader ⇒ Object (readonly)
Returns the value of attribute reader.
13 14 15 |
# File 'lib/pdf/reader/turtletext/textangle.rb', line 13 def reader @reader end |
#right_of(*args) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/pdf/reader/turtletext/textangle.rb', line 51 def right_of(*args) if value = args.first @right_of = value end @right_of end |
Instance Method Details
#text ⇒ Object
Returns the text
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/pdf/reader/turtletext/textangle.rb', line 59 def text return unless reader xmin = if right_of if [Fixnum,Float].include?(right_of.class) right_of else reader.text_position(right_of,page)[:x] + 1 end else 0 end xmax = if left_of if [Fixnum,Float].include?(left_of.class) left_of else reader.text_position(left_of,page)[:x] - 1 end else 99999 # TODO actual limit end ymin = if above if [Fixnum,Float].include?(above.class) above else reader.text_position(above,page)[:y] + 1 end else 0 end ymax = if below if [Fixnum,Float].include?(below.class) below else reader.text_position(below,page)[:y] - 1 end else 99999 # TODO actual limit end reader.text_in_region(xmin,xmax,ymin,ymax,page) end |