labelary 0.1.0 → 0.1.1

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: 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