easyzpl 0.2.6 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
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