labelary 0.1.0 → 0.1.1

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: 29390c82c16e578804bd475ba6e6281bdc20fdeb
4
- data.tar.gz: 3e684e1c454a745dbdaa88a88c131ca11e50ea66
3
+ metadata.gz: 1a162c74bb9e9c778da52f11edd04dfe37bf7f94
4
+ data.tar.gz: a4798e56be3ae88fdf34eead27e627621cf6a6d0
5
5
  SHA512:
6
- metadata.gz: ad081eb939b53d154d92932a9efe1ba7a7abb7324d2beda2ebb8451d15d0e5dad3a0e779e60b4203b4c1aa1ec0db80e1971f4774ed735b5f6e3c5d75dcb1a757
7
- data.tar.gz: 9ffaeb7cd26fbb1e00eef7ff0df5669ceec78a7e4a02bbebcb4b910454f2f62d4ca09bf46dac14bfb99482e8164c43ddc49eb31bb134ce83279a739d4aad927c
6
+ metadata.gz: 84eeaeeac3ef9b38c9591d961e46d5c703b81b437f9c5f64fe6e24fe80b885ee6c58fef643733350bf70961705c29961a3d0903bfd72a463bc6765ccba9772aa
7
+ data.tar.gz: 5543b9ac8bfc95c5673c86754a9259161782097658b134a3adf6b0da92e7d42a30068f0154b11094a0f916e69dd4fd27c935a3537cabfbf3c7a2c612ad7ca805
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Labelary
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/labelary.svg)](https://badge.fury.io/rb/labelary)
4
+
3
5
  Labelary ZPL (Zebra Printer Language) Web Service API Client for Ruby.
4
6
 
5
7
  **Features:**
@@ -7,6 +9,7 @@ Labelary ZPL (Zebra Printer Language) Web Service API Client for Ruby.
7
9
  * Render ZPL strings as PNG or PDF.
8
10
  * Encode images to ZPL.
9
11
  * Global configuration or per-request.
12
+ * Helper method for including fonts.
10
13
 
11
14
  Web service details and instructions: http://labelary.com/service.html
12
15
 
@@ -49,7 +52,7 @@ end
49
52
 
50
53
  ### Rendering Labels
51
54
 
52
- Pass in a width, height, dpmm (or set defaults in your configuration block) and a ZPL string to have it rendered as a PNG or PDF.
55
+ Pass in a `width`, `height`, `dpmm` (or set defaults in your configuration block) and a ZPL string to have it rendered as a PNG or PDF.
53
56
 
54
57
  ```ruby
55
58
  Labelary::Label.render zpl: '^XA^FDHello World^FS^XZ', content_type: 'image/png', dpmm: 8, width: 6, height: 4
@@ -72,6 +75,18 @@ Labelary::Label.render zpl: '^XA^FDHello World^FS^XZ'
72
75
  #> PDF blob
73
76
  ```
74
77
 
78
+ #### Fonts
79
+
80
+ Fonts can be included automatically via config, or per request, using the `font` argument. To do this pass in the correctly formatted `^DU` command as a string.
81
+
82
+ For example if you've got a Zebra font package such as [Swiss 721](https://support.zebra.com/cpws/docs/fonts/DownloadSwiss721.htm)
83
+
84
+ You also need to configure fonts.
85
+
86
+ ```ruby
87
+ Labelary::Label.render zpl: '^XA^A@,,,E:TT0003M_.FNT^FDHello World^FS^XZ', font: File.read('./swiss-721-font/77849_002.ZSU')
88
+ ```
89
+
75
90
  ### ZPL Encoding Images
76
91
 
77
92
  Pass in an image (or an IO object) and it's mime type and you'll get back a ZPL encoded version.
@@ -84,11 +99,58 @@ Labelary::Image.encode file_io: IO.read('/path/to/image.png'), filename: 'image.
84
99
  #> "^GFA,6699,6699,87,,::lR01F,SNIP,:^FS"
85
100
  ```
86
101
 
102
+ ### Rails Example
103
+
104
+ It's reasonably straight-forward to incorporate this into a Rails project if you wish. Here's an example in a controller:
105
+
106
+ ```ruby
107
+ # config/initializers/labelary.rb
108
+ Labelary.configure do |config|
109
+ config.dpmm = 8
110
+ config.width = 6
111
+ config.height = 4
112
+ end
113
+
114
+ # config/initializers/mime_types.rb
115
+ Mime::Type.register 'text/plain', :zpl
116
+ ```
117
+
118
+ ```
119
+ # app/views/labels/label.zpl.erb
120
+ ^XA^FDHello <%= @label.name_for_earth %>^FS^XZ
121
+ ```
122
+
123
+ ```ruby
124
+ # app/controllers/labels_controller.rb
125
+ class LabelsController < ApplicationController
126
+
127
+ # snip
128
+
129
+ def label
130
+ @label = Label.find params[:id]
131
+ zpl_string = render_to_string formats: [:zpl]
132
+
133
+ respond_to do |format|
134
+ format.zpl
135
+ format.png { get_rendered_zpl zpl_string }
136
+ format.pdf { get_rendered_zpl zpl_string, 'application/pdf' }
137
+ end
138
+ end
139
+
140
+ private
141
+
142
+ def get_rendered_zpl(zpl_string, content_type='image/png')
143
+ rendered_zpl = Labelary::Label.render zpl: zpl_string, content_type: content_type
144
+ send_data rendered_zpl, type: content_type, disposition: 'inline'
145
+ end
146
+ end
147
+ ```
148
+
87
149
  ## Development
88
150
 
89
151
  After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
90
152
 
91
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
153
+ To install this gem onto your local machine, run `bundle exec rake install`.
92
154
 
93
155
  ## Contributing
94
156
 
@@ -20,6 +20,7 @@ module Labelary
20
20
  :height,
21
21
  :index,
22
22
  :content_type,
23
+ :font
23
24
  ]
24
25
 
25
26
  def initialize
@@ -30,6 +31,7 @@ module Labelary
30
31
  @height = nil
31
32
  @index = 0
32
33
  @content_type = 'image/png'
34
+ @font = nil
33
35
  end
34
36
 
35
37
  end
@@ -4,13 +4,14 @@ module Labelary
4
4
  self.new(*args).render
5
5
  end
6
6
 
7
- def initialize(dpmm: nil, width: nil, height: nil, index: nil, zpl:, content_type: nil)
7
+ def initialize(dpmm: nil, width: nil, height: nil, index: nil, zpl:, content_type: nil, font: nil)
8
8
  @zpl ||= zpl
9
9
  @dpmm ||= dpmm || config.dpmm
10
10
  @width ||= width || config.width
11
11
  @height ||= height || config.height
12
12
  @index ||= index || config.index
13
13
  @content_type ||= content_type || config.content_type
14
+ @font ||= font || config.font
14
15
 
15
16
  raise 'Invalid dpmm' if @dpmm.nil?
16
17
  raise 'Invalid width' if @width.nil?
@@ -19,7 +20,8 @@ module Labelary
19
20
 
20
21
  # http://labelary.com/service.html
21
22
  def render
22
- response = Labelary::Client.connection.post "/v1/printers/#{@dpmm}dpmm/labels/#{@width}x#{@height}/#{@index}/", @zpl, { Accept: @content_type }
23
+ payload = @font.present? ? @font.to_s + @zpl : @zpl
24
+ response = Labelary::Client.connection.post "/v1/printers/#{@dpmm}dpmm/labels/#{@width}x#{@height}/#{@index}/", payload, { Accept: @content_type }
23
25
  return response.body
24
26
  end
25
27
 
@@ -1,3 +1,3 @@
1
1
  module Labelary
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: labelary
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Coleman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-03-04 00:00:00.000000000 Z
11
+ date: 2016-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler