easyzpl 0.2.6 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ef8ad2ea61a36f82d5d1fec32ff292b6106e4a79
4
- data.tar.gz: f0da9e778f7a121f3e308470ca02a89efffc38e0
3
+ metadata.gz: bdcc330ffe5f7f22f24474f26e02103f9275314e
4
+ data.tar.gz: 8f45cc1ff0f3ef7f4a93b22a4da55780030324b5
5
5
  SHA512:
6
- metadata.gz: 1b0df0d107bf75a08c801c806d7b85ae765f5731bde307706aabf33777f4ffe3ca2910463ce5dcb4a0750297661b8d7093ec0f51e725878d63276b654d1ee38b
7
- data.tar.gz: a4430ecf71b870b326c5b50b62bbf90664bf7450fb181a62fa9cb5658936ecc6c67cb7372df3fbcc5e5cb9718e4352badfa9a51c6f2403e2a87c05d9ef57f0ac
6
+ metadata.gz: 0e4b73d16b62910fdb8be9119ccc098d1a03c3d9015859316be64398709003d99fcb1853093eb0a43558a2233346b24e4f18b6e16b653b641a3d9a0a590a7a31
7
+ data.tar.gz: 058939a1af37ebd19c6ae71ad37cc2159b15b393eb3740c835f674bef837ac34a0ac325ce5ac571db71c29f29efef9b0520d52038390519911decce6eb6dfda0
data/README.md CHANGED
@@ -23,37 +23,236 @@ Or install it yourself as:
23
23
 
24
24
  $ gem install easyzpl
25
25
 
26
- ## Usage
27
-
28
- require 'rubygems'
29
- require 'easyzpl'
30
-
31
- # Create a simple label
32
- # NOTE: The height and width parameters are optional.
33
- # You only need to use them if you plan on using the
34
- # to_pdf method.
35
- label = Easyzpl::Label.new({ width: 400, height: 300 })
36
- label.home_position(30, 30)
37
- label.draw_border(0, 0, 400, 300)
38
- label.text_field('ZEBRA', 10, 10)
39
- label.bar_code_39('ZEBRA', 10, 30)
40
- puts label.to_s
41
- label.to_pdf("label.pdf")
42
-
43
- # Create a stored template
44
- label = Easyzpl::LabelTemplate.new('Template1')
45
- label.home_position(30, 30)
46
- label.draw_border(0, 0, 400, 300)
47
- label.variable_text_field(10, 10)
48
- label.variable_bar_code_39(10, 30)
49
- puts label.to_s
50
-
51
- # Created ZPL code to access the stored template created above
52
- label = Easyzpl::StoredLabel.new('Template1')
53
- label.add_field('ZEBRA')
54
- label.add_field('ZEBRA')
55
- puts label.to_s
26
+ ## Usage - the following is an example of an AIAG template
27
+ ```
28
+ # This file generates the ZPL for the AIAG template
29
+ require 'rubygems'
30
+ require 'easyzpl'
56
31
 
32
+ # There are 72 dots in an inch (usually)
33
+ # In the case of our printer, there are 203
34
+ dots = 193
35
+
36
+ # The dimensions of the label
37
+ label_x = 0
38
+ label_y = 0
39
+ label_width = 4
40
+ label_height = 6.5
41
+ label_fields_orientation = :landscape
42
+
43
+ # The dimensions of the header border
44
+ header_width = 1.2
45
+ header_height = 6.5
46
+ header_x = 0
47
+ header_y = 0
48
+
49
+ # The dimensions of the quantity border
50
+ quant_x = header_width
51
+ quant_y = header_height - (label_height / 2)
52
+ quant_height = label_height / 2
53
+ quant_width = 1.1
54
+
55
+ # The quantity text label
56
+ quant_text_label = 'QUANTITY'
57
+ quant_text_x = header_width + 0.1
58
+ quant_text_y = label_height - (quant_height - 2.5)
59
+ quant_text_height = 0.1
60
+ quant_text_width = 0.1
61
+
62
+ # The actual quantity text
63
+ qty_x = header_width + 0.1
64
+ qty_y = label_height - (quant_height - 0.5)
65
+ qty_width = 0.1
66
+ qty_height = 0.1
67
+
68
+ # The quantity bar code
69
+ qty_bar_code_x = header_width + 0.1 + 0.3
70
+ qty_bar_code_y = label_height - (quant_height - 0.5)
71
+ qty_bar_code_height = 0.3
72
+
73
+ # The dimensions of the serial supplier border
74
+ supplier_x = header_width + quant_width
75
+ supplier_y = header_height - 4
76
+ supplier_width = 0.8
77
+ supplier_height = 4
78
+
79
+ # The dimensions of the serial serial border
80
+ serial_x = header_width + quant_width + supplier_width
81
+ serial_y = header_height - 4
82
+ serial_width = 0.92
83
+ serial_height = 4
84
+
85
+ # The Header Text
86
+ header_text_x = 0.1
87
+ header_text_y = 0.001
88
+ header_text_height = 1.0
89
+ header_text_width = 0.5
90
+
91
+ # Supplier Name
92
+ supplier_name = 'Some Company'
93
+ supplier_name_x = header_width + 0.1
94
+ supplier_name_y = 0.2
95
+ supplier_name_height = 0.1
96
+ supplier_name_width = 0.1
97
+
98
+ # Supplier Address
99
+ supplier_address = '253 Street Name'
100
+ supplier_address_x = header_width + supplier_name_height + 0.15
101
+ supplier_address_y = 0.2
102
+ supplier_address_height = 0.1
103
+ supplier_address_width = 0.1
104
+
105
+ # Supplier city\state
106
+ supplier_city_state = 'City, FL 32953'
107
+ supplier_city_state_x = header_width + supplier_name_height + supplier_address_height + 0.2
108
+ supplier_city_state_y = 0.2
109
+ supplier_city_state_height = 0.1
110
+ supplier_city_state_width = 0.1
111
+
112
+ # The supplier header that goes in the supplier bar code box
113
+ supplier_header = 'SUPPLIER'
114
+ supplier_header_width = 0.1
115
+ supplier_header_height = 0.1
116
+ supplier_header_x = header_width + quant_width + 0.1
117
+ supplier_header_y = label_height - 0.75 - supplier_header_width
118
+
119
+ # The supplier number that goes in the supplier bar code box
120
+ supplier_number_x = header_width + quant_width + 0.1
121
+ supplier_number_y = label_height - 3.5 - supplier_header_width
122
+ supplier_number_height = 0.1
123
+ supplier_number_width = 0.1
124
+
125
+ # The supplier bar code that goes in the supplier bar code box
126
+ supplier_bar_code_x = header_width + quant_width + supplier_number_height + 0.2
127
+ supplier_bar_code_y = label_height - 3.5 - supplier_header_width
128
+ supplier_bar_code_height = 0.3
129
+
130
+ ## The serial number header that goes in the serial number bar code box
131
+ serial_header = 'SERIAL'
132
+ serial_header_height = 0.1
133
+ serial_header_width = 0.1
134
+ serial_header_x = header_width + quant_width + supplier_width + 0.1
135
+ serial_header_y = label_height - 0.75 - serial_header_width
136
+
137
+ # The serial number that goes in the serial number bar code box
138
+ serial_number_width = 0.1
139
+ serial_number_height = 0.1
140
+ serial_number_x = header_width + quant_width + supplier_width + 0.1
141
+ serial_number_y = label_height - 3.5 - serial_header_width
142
+
143
+ # The serial bar code that goes in the serial number bar code box
144
+ serial_bar_code_x = header_width + quant_width + supplier_width + serial_number_height + 0.2
145
+ serial_bar_code_y = label_height - 3.5 - serial_header_width
146
+ serial_bar_code_height = 0.3
147
+
148
+ # Generate the new label
149
+ label = Easyzpl::LabelTemplate.new('AiagLabel',
150
+ dots: dots,
151
+ width: label_width,
152
+ field_orientation: label_fields_orientation,
153
+ height: label_height)
154
+
155
+ label.home_position(30, 30) # 30,30 seems to be the standard for Zebra labels
156
+
157
+ # Draw the border around the entire label
158
+ label.draw_border(label_x, label_y, label_width, label_height)
159
+
160
+ # Draw the header border
161
+ label.draw_border(header_x, header_y, header_width, header_height)
162
+
163
+ # Draw the quantity border
164
+ label.draw_border(quant_x, quant_y, quant_width, quant_height)
165
+
166
+ # Draw the supplier border
167
+ label.draw_border(supplier_x, supplier_y, supplier_width, supplier_height)
168
+
169
+ # Draw the serial border
170
+ label.draw_border(serial_x, serial_y, serial_width, serial_height)
171
+
172
+ # Print the header text
173
+ label.variable_text_field(header_text_x, header_text_y,
174
+ width: header_text_width, height: header_text_height)
175
+
176
+ # Print the quantity label
177
+ label.text_field(quant_text_label,
178
+ quant_text_x,
179
+ quant_text_y,
180
+ width: quant_text_width,
181
+ height: quant_text_height)
182
+
183
+ # Print the quantity
184
+ label.variable_text_field(qty_x,
185
+ qty_y,
186
+ width: qty_width,
187
+ height: qty_height)
188
+
189
+ # Print the quantity bar code
190
+ label.variable_bar_code_39(qty_bar_code_x,
191
+ qty_bar_code_y,
192
+ orientation: :landscape,
193
+ height: qty_bar_code_height)
194
+
195
+ # Print the supplier name and address
196
+ label.text_field(supplier_name,
197
+ supplier_name_x,
198
+ supplier_name_y,
199
+ width: supplier_name_width,
200
+ height: supplier_name_height)
201
+
202
+ label.text_field(supplier_address,
203
+ supplier_address_x,
204
+ supplier_address_y,
205
+ width: supplier_address_width,
206
+ height: supplier_address_height)
207
+
208
+ label.text_field(supplier_city_state,
209
+ supplier_city_state_x,
210
+ supplier_city_state_y,
211
+ width: supplier_city_state_width,
212
+ height: supplier_city_state_height)
213
+
214
+ # Print the supplier header
215
+ label.text_field(supplier_header,
216
+ supplier_header_x,
217
+ supplier_header_y,
218
+ width: supplier_header_width,
219
+ height: supplier_header_height)
220
+
221
+ # Print the supplier number
222
+ label.variable_text_field(supplier_number_x,
223
+ supplier_number_y,
224
+ width: supplier_number_width,
225
+ height: supplier_number_height)
226
+
227
+ # Print the supplier bar code
228
+ label.variable_bar_code_39(supplier_bar_code_x,
229
+ supplier_bar_code_y,
230
+ orientation: :landscape,
231
+ height: supplier_bar_code_height)
232
+
233
+ # Print the serial header
234
+ label.text_field(serial_header,
235
+ serial_header_x,
236
+ serial_header_y,
237
+ orientation: :landscape,
238
+ height: serial_header_height,
239
+ width: serial_header_width)
240
+
241
+ # Print the serial number
242
+ label.variable_text_field(serial_number_x,
243
+ serial_number_y,
244
+ height: serial_number_height,
245
+ width: serial_number_width)
246
+
247
+ # Print the serial bar code
248
+ label.variable_bar_code_39(serial_bar_code_x,
249
+ serial_bar_code_y,
250
+ orientation: :landscape,
251
+ height: serial_bar_code_height)
252
+
253
+ # Generate the label code
254
+ puts label.to_s
255
+ ```
57
256
  ## Contributing
58
257
 
59
258
  1. Fork it ( https://github.com/[my-github-username]/easyzpl/fork )
data/lib/easyzpl/label.rb CHANGED
@@ -7,24 +7,44 @@ require 'barby/outputter/prawn_outputter'
7
7
  module Easyzpl
8
8
  # This is the label object
9
9
  class Label
10
+ attr_accessor :invert
10
11
  attr_accessor :label_data
11
12
  attr_accessor :quantity
12
13
  attr_accessor :pdf
13
14
  attr_accessor :label_width
14
15
  attr_accessor :label_height
16
+ attr_accessor :printer_dpi
17
+ attr_accessor :pdf_dpi
18
+ attr_accessor :field_orientation
15
19
 
16
20
  # Called when the new method is invoked
17
21
  def initialize(params = {})
18
22
  # Create the array that will hold the data
19
23
  self.label_data = []
24
+
20
25
  # Set the default quantity to one
21
26
  self.quantity = 1
22
27
 
23
- # The start of the zpl label
28
+ # Set the DPIs
29
+ self.pdf_dpi = 72
30
+ self.printer_dpi = params[:dots]
31
+
32
+ # Set the field orientation
33
+ self.field_orientation = params[:field_orientation]
34
+
35
+ # See if invert is set to true
36
+ self.invert = params[:invert]
37
+
38
+ # The start of the label
24
39
  label_data.push('^XA')
40
+ label_data.push('^POI') if invert
41
+ label_data.push('^LT' + Integer(params[:offset] * printer_dpi).to_s) unless params[:offset].nil?
42
+ label_data.push('^LL' + Integer(params[:height] * printer_dpi).to_s) unless params[:height].nil?
43
+ label_data.push('^PW' + Integer(params[:width] * printer_dpi).to_s) unless params[:width].nil?
44
+ label_data.push('^FWB') if field_orientation == :landscape
25
45
 
26
46
  # Initialize Prawn
27
- init_prawn(params)
47
+ # init_prawn(params)
28
48
  end
29
49
 
30
50
  # Set the number of labels to print
@@ -48,38 +68,66 @@ module Easyzpl
48
68
  x = 0 unless numeric?(x)
49
69
  y = 0 unless numeric?(y)
50
70
 
51
- label_data.push('^FO' + x.to_s + ',' + y.to_s + '^GB' + height.to_s +
52
- ',' + width.to_s + ',1^FS')
71
+ label_data.push('^FO' + Integer(x * printer_dpi).to_s + ',' +
72
+ Integer(y * printer_dpi).to_s + '^GB' +
73
+ Integer(height * printer_dpi).to_s +
74
+ ',' + Integer(width * printer_dpi).to_s + ',1^FS')
53
75
 
54
- draw_rectangle(x, y, height, width)
76
+ # draw_rectangle(x * pdf_dpi, y * pdf_dpi, height * pdf_dpi, width * pdf_dpi)
55
77
  end
56
78
 
57
79
  # Prints text
58
80
  def text_field(text, x, y, params = {})
59
81
  x = 0 unless numeric?(x)
60
82
  y = 0 unless numeric?(y)
61
- options = { height: 10, width: 10 }.merge(params)
62
- label_data.push('^FO' + x.to_s + ',' + y.to_s + '^AFN,' +
63
- options[:height].to_s + ',' + options[:width].to_s +
64
- '^FD' + text + '^FS')
83
+ options = { height: 0.1,
84
+ width: 0.1 }.merge!(params)
85
+ label_data.push('^FO' + Integer(x * printer_dpi).to_s + ',' + Integer(y *
86
+ printer_dpi).to_s)
87
+
88
+ if params[:orientation] == :landscape
89
+ label_data.push('^AFB,')
90
+ else
91
+ label_data.push('^AFN,')
92
+ end
65
93
 
66
- return unless label_height > 0 && label_width > 0
67
- pdf.text_box text,
68
- at: [x, label_width - y -
69
- Integer(options[:height] / 10)],
70
- size: options[:height] if label_height && label_width
94
+ label_data.push(Integer(options[:height] * printer_dpi).to_s + ',' +
95
+ Integer(options[:width] * printer_dpi).to_s + '^FD' +
96
+ text + '^FS')
97
+
98
+ # return unless label_height > 0 && label_width > 0
99
+ # pdf.text_box text, at: [x, label_width - y -
100
+ # Integer((options[:height] * pdf_dpi) / 10)],
101
+ # size: (options[:height] *
102
+ # pdf_dpi) if label_height && label_width
71
103
  end
72
104
 
73
105
  # Prints a bar code in barcode39 font
74
106
  def bar_code_39(bar_code_string, x, y, params = {})
75
107
  x = 0 unless numeric?(x)
76
108
  y = 0 unless numeric?(y)
77
- label_data.push('^FO' + x.to_s + ',' + y.to_s + '^B3N,Y,20,N,N^FD' +
109
+ label_data.push('^FO' + Integer(x * printer_dpi).to_s + ',' +
110
+ Integer(y * printer_dpi).to_s + '^B3N,Y,20,N,N^FD' +
78
111
  bar_code_string + '^FS')
79
112
 
80
- return unless label_height && label_width
81
- options = { height: 20 }.merge(params)
82
- draw_bar_code_39(bar_code_string, x, y, options[:height])
113
+ # return unless label_height && label_width
114
+ # options = { height: 20 }.merge!(params) { |key, v1, v2| v1 }
115
+ # draw_bar_code_39(bar_code_string, Integer(x * pdf_dpi),
116
+ # Integer(y * pdf_dpi), (options[:height] * pdf_dpi))
117
+ end
118
+
119
+ # Prints a bar code in pdf417 font
120
+ def bar_code_pdf417(bar_code_string, x, y, params = {})
121
+ x = 0 unless numeric?(x)
122
+ y = 0 unless numeric?(y)
123
+ label_data.push('^FO' + Integer(x * printer_dpi).to_s + ',' +
124
+ Integer(y * printer_dpi).to_s + '^B7N,Y,20,N,N^FD' +
125
+ bar_code_string + '^FS')
126
+
127
+ # return unless label_height && label_width
128
+ # options = { height: 20 }.merge!(params)
129
+ # draw_bar_code_39(bar_code_string, Integer(x * pdf_dpi),
130
+ # Integer(y * pdf_dpi), (options[:height] * pdf_dpi))
83
131
  end
84
132
 
85
133
  # Renders the ZPL code as a string
@@ -96,8 +144,8 @@ module Easyzpl
96
144
  protected
97
145
 
98
146
  def init_prawn(params)
99
- self.label_width = params[:width] || 0
100
- self.label_height = params[:height] || 0
147
+ self.label_width = (params[:width] * pdf_dpi) || 0
148
+ self.label_height = (params[:height] * pdf_dpi) || 0
101
149
 
102
150
  return unless label_height > 0 && label_width > 0
103
151
  self.pdf = Prawn::Document.new
@@ -113,17 +161,19 @@ module Easyzpl
113
161
  return unless label_height > 0 && label_width > 0
114
162
  pdf.stroke_axis
115
163
  pdf.stroke do
116
- pdf.rectangle [x, label_width - y - width], height, width * -1
164
+ pdf.rectangle [x * pdf_dpi, label_width - (y * pdf_dpi) -
165
+ (width * pdf_dpi)], height,
166
+ (width * pdf_dpi) * -1
117
167
  end
118
168
  end
119
169
 
120
170
  # Draws the PDF bar code 39
121
171
  def draw_bar_code_39(bar_code_string, x, y, height)
122
172
  return unless label_height > 0 && label_width > 0
123
- pdf.bounding_box [x, Integer(label_width) - y - height],
124
- width: height do
173
+ pdf.bounding_box [x, Integer(label_width) - y - (height * pdf_dpi)],
174
+ width: (height * pdf_dpi) do
125
175
  barcode = Barby::Code39.new(bar_code_string)
126
- barcode.annotate_pdf(pdf, height: height)
176
+ barcode.annotate_pdf(pdf, height: (height * pdf_dpi))
127
177
  end
128
178
  end
129
179
  end
@@ -16,6 +16,13 @@ module Easyzpl
16
16
  return if name.nil?
17
17
  return if name.strip.empty?
18
18
 
19
+ # Set the DPIs
20
+ self.pdf_dpi = 72
21
+ self.printer_dpi = params[:dots]
22
+
23
+ # Set the field orientation
24
+ self.field_orientation = params[:field_orientation]
25
+
19
26
  # Set the number of variable fields
20
27
  self.variable_fields_count = 0
21
28
 
@@ -25,46 +32,107 @@ module Easyzpl
25
32
  # Set the default quantity to one
26
33
  self.quantity = 1
27
34
 
35
+ # See if invert is set to true
36
+ self.invert = params[:invert]
37
+
28
38
  # The start of the label
29
- label_data.push('^XA^DF' + name + '^FS')
39
+ label_data.push('^XA')
40
+ label_data.push('^POI') if invert
41
+ label_data.push('^LT' + Integer(params[:offset] * printer_dpi).to_s) unless params[:offset].nil?
42
+ label_data.push('^LL' + Integer(params[:height] * printer_dpi).to_s) unless params[:height].nil?
43
+ label_data.push('^PW' + Integer(params[:width] * printer_dpi).to_s) unless params[:width].nil?
44
+ label_data.push('^FWB') if field_orientation == :landscape
45
+ label_data.push('^DF' + name + '^FS')
30
46
 
31
- init_prawn(params)
47
+ # init_prawn(params)
32
48
  end
33
49
 
34
50
  # Sets a variable field that can be recalled
35
51
  def variable_text_field(x, y, params = {})
36
52
  x = 0 unless numeric?(x)
37
53
  y = 0 unless numeric?(y)
38
- options = { height: 10, width: 10 }.merge(params)
54
+ options = { height: 0.1, width: 0.1 }.merge!(params)
39
55
 
40
56
  # update the variable field count
41
57
  self.variable_fields_count += 1
42
58
 
43
- label_data.push('^FO' + x.to_s + ',' + y.to_s + '^AFN,' +
44
- options[:height].to_s + ',' + options[:width].to_s +
59
+ label_data.push('^FO' + Integer(x * printer_dpi).to_s + ',' +
60
+ Integer(y * printer_dpi).to_s)
61
+
62
+ if params[:orientation] == :landscape
63
+ label_data.push('^AFB,')
64
+ else
65
+ label_data.push('^AFN,')
66
+ end
67
+
68
+ label_data.push(Integer(options[:height] * printer_dpi).to_s + ',' +
69
+ Integer(options[:width] * printer_dpi).to_s +
45
70
  '^FN' + variable_fields_count.to_s + '^FS')
46
71
 
47
- return unless label_height > 0 && label_width > 0
48
- pdf.text_box '{Variable Field ' + variable_fields_count.to_s + '}',
49
- at: [x, label_width - y - Integer(options[:height] / 10)],
50
- size: options[:height] if label_height && label_width
72
+ # return unless label_height > 0 && label_width > 0
73
+ # pdf.text_box '{Variable Field ' + variable_fields_count.to_s + '}',
74
+ # at: [Integer(x * pdf_dpi), Integer(label_width * pdf_dpi) -
75
+ # Integer(y * pdf_dpi) -
76
+ # Integer(options[:height] / 10) * pdf_dpi],
77
+ # size: Integer(options[:height] * pdf_dpi) if label_height &&
78
+ # label_width
51
79
  end
52
80
 
53
81
  # Sets a variable bar code that can be recalled
54
82
  def variable_bar_code_39(x, y, params = {})
55
83
  x = 0 unless numeric?(x)
56
84
  y = 0 unless numeric?(y)
85
+ options = { height: 0.1, width: 0.1 }.merge!(params)
57
86
 
58
87
  # update the variable field count
59
88
  self.variable_fields_count += 1
60
89
 
61
- label_data.push('^FO' + x.to_s + ',' + y.to_s + '^B3N,Y,20,N,N^FN' +
62
- variable_fields_count.to_s + '^FS')
90
+ label_data.push('^FO' + Integer(x * printer_dpi).to_s + ',' +
91
+ Integer(y * printer_dpi).to_s)
92
+ label_data.push('^BY2,2,100')
93
+
94
+ if params[:orientation] == :landscape
95
+ label_data.push('^B3B,')
96
+ else
97
+ label_data.push('^B3N,')
98
+ end
99
+
100
+ label_data.push('Y,' + Integer(options[:height] * printer_dpi).to_s +
101
+ ',N,N^FN' + variable_fields_count.to_s + '^FS')
102
+
103
+ # return unless label_height && label_width
104
+ # options = { height: 20 }.merge(params)
105
+ # draw_bar_code_39('VARIABLEFIELD' + variable_fields_count.to_s,
106
+ # Integer(x * pdf_dpi), Integer(y * pdf_dpi),
107
+ # Integer(options[:height] * pdf_dpi))
108
+ end
109
+
110
+ # This creates a PDF417 bar code, which is very common in the automotive
111
+ # industry. The format is as follows:
112
+ # ^B7o,h,s,c,r,t
113
+ # o = Orientation
114
+ # N - normal, R rotated 90 degrees clockwise, I inverted 180 degrees
115
+ # B - Read from bottom up 270 degrees
116
+ # h = height for individual rows in dots
117
+ def variable_bar_code_pdf417(x, y, params = {})
118
+ x = 0 unless numeric?(x)
119
+ y = 0 unless numeric?(y)
120
+ options = { height: 0.1, width: 0.1 }.merge!(params)
121
+
122
+ # update the variable field count
123
+ self.variable_fields_count += 1
124
+
125
+ label_data.push('^FO' + Integer(x * printer_dpi).to_s + ',' +
126
+ Integer(y * printer_dpi).to_s)
127
+
128
+ if params[:orientation] == :landscape
129
+ label_data.push('^B7B,')
130
+ else
131
+ label_data.push('^B7N,')
132
+ end
63
133
 
64
- return unless label_height && label_width
65
- options = { height: 20 }.merge(params)
66
- draw_bar_code_39('VARIABLEFIELD' + variable_fields_count.to_s,
67
- x, y, options[:height])
134
+ label_data.push((printer_dpi / 5).to_s + ',0,' + 5.to_s + ',' + 8.to_s +
135
+ ',N^FN' + variable_fields_count.to_s + '^FS')
68
136
  end
69
137
  end
70
138
  end
@@ -1,4 +1,4 @@
1
1
  # Section holds the version number of the Gem
2
2
  module Easyzpl
3
- VERSION = '0.2.6'
3
+ VERSION = '0.4.4'
4
4
  end
data/spec/easyzpl_spec.rb CHANGED
@@ -3,30 +3,30 @@ require 'spec_helper'
3
3
  describe 'Testing easyzpl Gem' do
4
4
  context 'When creating an empty label' do
5
5
  it 'should output a blank label' do
6
- label = Easyzpl::Label.new
6
+ label = Easyzpl::Label.new(dots: 203)
7
7
  expect(label.to_s).to eq('^XA^PQ1^XZ')
8
8
  end
9
9
  end
10
10
 
11
11
  context 'When creating a simple lable' do
12
12
  it 'should output a label with the text "Zebra" and a barcode representation' do
13
- label = Easyzpl::Label.new
13
+ label = Easyzpl::Label.new(dots: 203)
14
14
  label.home_position(30, 30)
15
15
  label.draw_border(0, 0, 400, 300)
16
16
  label.text_field('ZEBRA', 10, 10)
17
17
  label.bar_code_39('ZEBRA', 10, 30)
18
- expect(label.to_s).to eq('^XA^LH30,30^FO0,0^GB400,300,1^FS^FO10,10^AFN,10,10^FDZEBRA^FS^FO10,30^B3N,Y,20,N,N^FDZEBRA^FS^PQ1^XZ')
18
+ expect(label.to_s).to eq('^XA^LH30,30^FO0,0^GB81200,60900,1^FS^FO2030,2030^AFN,20,20^FDZEBRA^FS^FO2030,6090^B3N,Y,20,N,N^FDZEBRA^FS^PQ1^XZ')
19
19
  end
20
20
  end
21
21
 
22
22
  context 'When creating a stored template' do
23
23
  it 'should output a label template with one variable text field and one variable barcode' do
24
- label = Easyzpl::LabelTemplate.new('Template1')
24
+ label = Easyzpl::LabelTemplate.new('Template1', dots: 203)
25
25
  label.home_position(30, 30)
26
26
  label.draw_border(0, 0, 400, 300)
27
27
  label.variable_text_field(10, 10)
28
28
  label.variable_bar_code_39(10, 30)
29
- expect(label.to_s).to eq('^XA^DFTemplate1^FS^LH30,30^FO0,0^GB400,300,1^FS^FO10,10^AFN,10,10^FN1^FS^FO10,30^B3N,Y,20,N,N^FN2^FS^PQ1^XZ')
29
+ expect(label.to_s).to eq('^XA^DFTemplate1^FS^LH30,30^FO0,0^GB81200,60900,1^FS^FO2030,2030^AFN,20,20^FN1^FS^FO2030,6090^BY2,2,100^B3N,Y,20,N,N^FN2^FS^PQ1^XZ')
30
30
  end
31
31
  end
32
32
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easyzpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Grigajtis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-18 00:00:00.000000000 Z
11
+ date: 2014-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler