escper 1.0
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.
- data/.gitignore +3 -0
- data/Gemfile +4 -0
- data/Rakefile +2 -0
- data/escper.gemspec +21 -0
- data/lib/escper.rb +61 -0
- data/lib/escper/version.rb +3 -0
- metadata +69 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
data/escper.gemspec
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "escper/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "escper"
|
7
|
+
s.version = Escper::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Michael Franzl"]
|
10
|
+
s.email = ["office@michaelfranzl.com"]
|
11
|
+
s.homepage = "http://michaelfranzl.com"
|
12
|
+
s.summary = %q{Converts bitmaps to the ESC/POS receipt printer command}
|
13
|
+
s.description = %q{}
|
14
|
+
|
15
|
+
s.rubyforge_project = "escper"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
end
|
data/lib/escper.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'RMagick'
|
2
|
+
module Escper
|
3
|
+
class Image
|
4
|
+
def initialize(img)
|
5
|
+
@image = convert(Magick::Image.read(img).first)
|
6
|
+
end
|
7
|
+
|
8
|
+
def convert(img=nil)
|
9
|
+
if img.nil? and @image
|
10
|
+
@image = @image.quantize 2, Magick::GRAYColorspace
|
11
|
+
@image = crop(@image)
|
12
|
+
return @image
|
13
|
+
else
|
14
|
+
img = img.quantize 2, Magick::GRAYColorspace
|
15
|
+
img = crop(img)
|
16
|
+
return img
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def crop(image)
|
21
|
+
@x = (image.columns / 8.0).round
|
22
|
+
@y = (image.rows / 8.0).round
|
23
|
+
@x = 1 if @x == 0
|
24
|
+
@y = 1 if @y == 0
|
25
|
+
image = image.extent @x * 8, @y * 8
|
26
|
+
return image
|
27
|
+
end
|
28
|
+
|
29
|
+
def to_a
|
30
|
+
colorarray = @image.export_pixels
|
31
|
+
return colorarray
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_s
|
35
|
+
colorarray = self.to_a
|
36
|
+
bits = []
|
37
|
+
mask = 0x80
|
38
|
+
i = 0
|
39
|
+
temp = 0
|
40
|
+
(@x * @y * 8 * 3 * 8).times do |j|
|
41
|
+
next unless (j % 3).zero?
|
42
|
+
temp |= mask if colorarray[j] == 0 # put 1 in place if black
|
43
|
+
mask = mask >> 1 # shift mask
|
44
|
+
i += 3
|
45
|
+
if i == 24
|
46
|
+
bits << temp
|
47
|
+
mask = 0x80
|
48
|
+
i = 0
|
49
|
+
temp = 0
|
50
|
+
end
|
51
|
+
end
|
52
|
+
result = bits.collect { |b| b.chr }.join
|
53
|
+
escpos="\x1D\x76\x30\x00#{@x.chr}\x00#{(@y*8).chr}\x00#{ result }"
|
54
|
+
return escpos
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
File.open('/dev/usb/lp0','w') do |f|
|
60
|
+
f.write Escper::Image.new('/home/michael3/projects/salor-tec/cigarstore.png').to_s
|
61
|
+
end
|
metadata
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: escper
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 0
|
8
|
+
version: "1.0"
|
9
|
+
platform: ruby
|
10
|
+
authors:
|
11
|
+
- Michael Franzl
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
cert_chain: []
|
15
|
+
|
16
|
+
date: 2011-10-20 00:00:00 +02:00
|
17
|
+
default_executable:
|
18
|
+
dependencies: []
|
19
|
+
|
20
|
+
description: ""
|
21
|
+
email:
|
22
|
+
- office@michaelfranzl.com
|
23
|
+
executables: []
|
24
|
+
|
25
|
+
extensions: []
|
26
|
+
|
27
|
+
extra_rdoc_files: []
|
28
|
+
|
29
|
+
files:
|
30
|
+
- .gitignore
|
31
|
+
- Gemfile
|
32
|
+
- Rakefile
|
33
|
+
- escper.gemspec
|
34
|
+
- lib/escper.rb
|
35
|
+
- lib/escper/version.rb
|
36
|
+
has_rdoc: true
|
37
|
+
homepage: http://michaelfranzl.com
|
38
|
+
licenses: []
|
39
|
+
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
|
43
|
+
require_paths:
|
44
|
+
- lib
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
none: false
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
segments:
|
51
|
+
- 0
|
52
|
+
version: "0"
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
requirements: []
|
62
|
+
|
63
|
+
rubyforge_project: escper
|
64
|
+
rubygems_version: 1.3.7
|
65
|
+
signing_key:
|
66
|
+
specification_version: 3
|
67
|
+
summary: Converts bitmaps to the ESC/POS receipt printer command
|
68
|
+
test_files: []
|
69
|
+
|