Class: Zebra::Zpl::Label

Inherits:
Object
  • Object
show all
Defined in:
lib/zebra/zpl/label.rb

Defined Under Namespace

Classes: InvalidPrintDensityError, InvalidPrintSpeedError, PrintSpeedNotInformedError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Label

Returns a new instance of Label.



14
15
16
17
# File 'lib/zebra/zpl/label.rb', line 14

def initialize(options = {})
  options.each_pair { |key, value| self.__send__("#{key}=", value) if self.respond_to?("#{key}=") }
  @elements = []
end

Instance Attribute Details

#copiesObject



34
35
36
# File 'lib/zebra/zpl/label.rb', line 34

def copies
  @copies || 1
end

#elementsObject (readonly)

Returns the value of attribute elements.



11
12
13
# File 'lib/zebra/zpl/label.rb', line 11

def elements
  @elements
end

#gapObject

Returns the value of attribute gap.



12
13
14
# File 'lib/zebra/zpl/label.rb', line 12

def gap
  @gap
end

#lengthObject

Returns the value of attribute length.



12
13
14
# File 'lib/zebra/zpl/label.rb', line 12

def length
  @length
end

Returns the value of attribute print_density.



12
13
14
# File 'lib/zebra/zpl/label.rb', line 12

def print_density
  @print_density
end

Returns the value of attribute print_speed.



12
13
14
# File 'lib/zebra/zpl/label.rb', line 12

def print_speed
  @print_speed
end

#tempfileObject (readonly)

Returns the value of attribute tempfile.



11
12
13
# File 'lib/zebra/zpl/label.rb', line 11

def tempfile
  @tempfile
end

#widthObject

Returns the value of attribute width.



12
13
14
# File 'lib/zebra/zpl/label.rb', line 12

def width
  @width
end

Instance Method Details

#<<(element) ⇒ Object



38
39
40
41
# File 'lib/zebra/zpl/label.rb', line 38

def <<(element)
  element.width = self.width
  elements << element
end

#dump_contents(io = STDOUT) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/zebra/zpl/label.rb', line 43

def dump_contents(io = STDOUT)
  check_required_configurations
  # Start format
  io << "^XA"
  # ^LL<label height in dots>,<space between labels in dots>
  # io << "^LL#{length},#{gap}\n" if length && gap
  io << "^LL#{length}" if length
  # ^LH<label home - x,y coordinates of top left label>
  io << "^LH0,0"
  # ^LS<shift the label to the left(or right)>
  io << "^LS10"
  # ^PW<label width in dots>
  io << "^PW#{width}" if width
  # Print Rate(speed) (^PR command)
  io << "^PR#{print_speed}"
  # Density (D command) "Carried over from EPL, does this exist in ZPL ????"
  # io << "D#{print_density}\n" if print_density

  # TEST ZPL (comment everything else out)...
  # io << "^XA^WD*:*.FNT*^XZ"
  # TEST ZPL SEGMENT
  # io << "^WD*:*.FNT*"
  # TEST AND GET CONFIGS
  # io << "^HH"

  elements.each do |element|
    io << element.to_zpl
  end
  # Specify how many copies to print
  io << "^PQ#{copies}"
  # End format
  io << "^XZ"
end

#length_and_gap=(length_and_gap) ⇒ Object



19
20
21
22
# File 'lib/zebra/zpl/label.rb', line 19

def length_and_gap=(length_and_gap)
  self.length = length_and_gap[0]
  self.gap    = length_and_gap[1]
end

#persistObject



77
78
79
80
81
82
83
84
# File 'lib/zebra/zpl/label.rb', line 77

def persist
  # debugger
  tempfile = Tempfile.new "zebra_label"
  dump_contents tempfile
  tempfile.close
  @tempfile = tempfile
  tempfile
end

#persisted?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'lib/zebra/zpl/label.rb', line 86

def persisted?
  !!self.tempfile
end