wiz_rtf 0.6.7 → 0.6.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/wiz_rtf/color.rb +2 -8
- data/lib/wiz_rtf/document.rb +31 -10
- data/lib/wiz_rtf/font.rb +42 -26
- data/lib/wiz_rtf/text.rb +5 -1
- data/lib/wiz_rtf/version.rb +1 -1
- data/wiz_rtf.gemspec +2 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac771b35f8a2481049d6d3903d414cf682efe9dc
|
4
|
+
data.tar.gz: 0abedded749171f1f81d71c9da0dcedf23477f20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e34a0f6a7a53dee404b7968223edfdb0d5761aa53bb6f6db8f0aed809a0b83619ae9eec4252566514dfe28e1a253669610e8c9b05fc612754c630425a7e71905
|
7
|
+
data.tar.gz: ffd7b8bdc8b6e8d81b92193296977a35cb0794216d6139f82a94a66eebcddc22fc1df578df17ffb9ad3cb7b7ce150f44966b2f95769f93a039ee542b47af6297
|
data/lib/wiz_rtf/color.rb
CHANGED
@@ -23,6 +23,8 @@ module WizRtf
|
|
23
23
|
GRAY = '#808080'
|
24
24
|
BLACK = '#000000'
|
25
25
|
|
26
|
+
attr_reader :red, :green, :blue
|
27
|
+
|
26
28
|
def initialize(*rgb)
|
27
29
|
case rgb.size
|
28
30
|
when 1
|
@@ -50,13 +52,5 @@ module WizRtf
|
|
50
52
|
"#" + to_rgb.map {|c| "%02X" % c }.join
|
51
53
|
end
|
52
54
|
|
53
|
-
def render(io)
|
54
|
-
io.delimit do
|
55
|
-
io.cmd :red, @red
|
56
|
-
io.cmd :green, @green
|
57
|
-
io.cmd :blue, @blue
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
55
|
end
|
62
56
|
end
|
data/lib/wiz_rtf/document.rb
CHANGED
@@ -9,7 +9,7 @@ module WizRtf
|
|
9
9
|
#
|
10
10
|
# Creates a new Rtf document specifing the format of the pages.
|
11
11
|
# == Example:
|
12
|
-
#
|
12
|
+
# ```ruby
|
13
13
|
# doc = WizRtf::Document.new do
|
14
14
|
# text "A Example of Rtf Document", 'text-align' => :center, 'font-family' => 'Microsoft YaHei', 'font-size' => 48, 'font-bold' => true, 'font-italic' => true, 'font-underline' => true
|
15
15
|
# image('h:\eahey.png')
|
@@ -21,7 +21,7 @@ module WizRtf
|
|
21
21
|
# end
|
22
22
|
# end
|
23
23
|
# doc.save('c:\text.rtf')
|
24
|
-
#
|
24
|
+
# ```
|
25
25
|
class Document
|
26
26
|
def initialize(options = {}, &block)
|
27
27
|
@fonts = []
|
@@ -41,15 +41,28 @@ module WizRtf
|
|
41
41
|
io.cmd :deff, 0
|
42
42
|
io.group do
|
43
43
|
io.cmd :fonttbl
|
44
|
-
@fonts.
|
45
|
-
|
44
|
+
@fonts.each_with_index do |font, index|
|
45
|
+
io.group do
|
46
|
+
io.delimit do
|
47
|
+
io.cmd :f, index
|
48
|
+
io.cmd font.family
|
49
|
+
io.cmd :fprq, font.pitch
|
50
|
+
io.cmd :fcharset, font.character_set
|
51
|
+
io.write ' '
|
52
|
+
io.write font.name
|
53
|
+
end
|
54
|
+
end
|
46
55
|
end
|
47
56
|
end
|
48
57
|
io.group do
|
49
58
|
io.cmd :colortbl
|
50
59
|
io.delimit
|
51
60
|
@colors.each do |color|
|
52
|
-
|
61
|
+
io.delimit do
|
62
|
+
io.cmd :red, color.red
|
63
|
+
io.cmd :green, color.green
|
64
|
+
io.cmd :blue, color.blue
|
65
|
+
end
|
53
66
|
end
|
54
67
|
end
|
55
68
|
@parts.each do |part|
|
@@ -69,11 +82,15 @@ module WizRtf
|
|
69
82
|
end
|
70
83
|
|
71
84
|
# Sets the Font for the text.
|
72
|
-
def font(name, family = nil, character_set = 0,
|
85
|
+
def font(name, family = nil, character_set = 0, pitch = 2)
|
73
86
|
unless index = @fonts.index {|f| f.name == name}
|
74
87
|
index = @fonts.size
|
75
88
|
opts = WizRtf::Font::FONTS.detect {|f| f[:name] == name}
|
76
|
-
|
89
|
+
if opts
|
90
|
+
@fonts << WizRtf::Font.new(opts[:name], opts[:family], opts[:character], opts[:pitch])
|
91
|
+
else
|
92
|
+
@fonts << WizRtf::Font.new(name, family, character_set, pitch)
|
93
|
+
end
|
77
94
|
end
|
78
95
|
index
|
79
96
|
end
|
@@ -94,7 +111,11 @@ module WizRtf
|
|
94
111
|
# current drawing position.
|
95
112
|
# == Styles:
|
96
113
|
# * +text-align+ - sets the horizontal alignment of the text. optional values: +:left+, +:center+, +:right+
|
97
|
-
# * +font-family+ - set the font family of the text. optional values:
|
114
|
+
# * +font-family+ - set the font family of the text. optional values: 'Arial', 'Arial Black', 'Arial Narrow','Bitstream Vera Sans Mono',
|
115
|
+
# 'Bitstream Vera Sans','Bitstream Vera Serif','Book Antiqua','Bookman Old Style','Castellar','Century Gothic',
|
116
|
+
# 'Comic Sans MS','Courier New','Franklin Gothic Medium','Garamond','Georgia','Haettenschweiler','Impact','Lucida Console'
|
117
|
+
# 'Lucida Sans Unicode','Microsoft Sans Serif','Monotype Corsiva','Palatino Linotype','Papyrus','Sylfaen','Symbol'
|
118
|
+
# 'Tahoma','Times New Roman','Trebuchet MS','Verdana'.
|
98
119
|
# * +font-size+ - set font size of the text.
|
99
120
|
# * +font-bold+ - setting the value true for bold of the text.
|
100
121
|
# * +font-italic+ - setting the value true for italic of the text.
|
@@ -121,14 +142,14 @@ module WizRtf
|
|
121
142
|
# == Options:
|
122
143
|
# * +column_widths+ - sets the widths of the Columns.
|
123
144
|
# == Example:
|
124
|
-
#
|
145
|
+
# ```ruby
|
125
146
|
# table [
|
126
147
|
# [{content: WizRtf::Image.new('h:\eahey.png'),rowspan:4},{content:'4',rowspan:4},1,{content:'1',colspan:2}],
|
127
148
|
# [{content:'4',rowspan:3,colspan:2},8],[11]
|
128
149
|
# ], column_widths:{1=>100,2 => 100,3 => 50,4 => 50,5 => 50} do
|
129
150
|
# add_row [1]
|
130
151
|
# end
|
131
|
-
#
|
152
|
+
# ```
|
132
153
|
def table(rows = [],options = {}, &block)
|
133
154
|
@parts << WizRtf::Table.new(rows, options, &block)
|
134
155
|
end
|
data/lib/wiz_rtf/font.rb
CHANGED
@@ -45,38 +45,54 @@ module WizRtf
|
|
45
45
|
}
|
46
46
|
|
47
47
|
FONTS = [
|
48
|
-
{
|
49
|
-
{
|
50
|
-
{
|
51
|
-
{
|
52
|
-
{
|
53
|
-
{
|
54
|
-
{
|
55
|
-
{
|
56
|
-
{
|
48
|
+
{name:'Arial', family:'fswiss', character:0, pitch:2, panose:'020b0604020202020204'},
|
49
|
+
{name:'Arial Black', family:'swiss', character:0, pitch:2, panose:'020b0a04020102020204'},
|
50
|
+
{name:'Arial Narrow', family:'swiss', character:0, pitch:2, panose:'020b0506020202030204'},
|
51
|
+
{name:'Bitstream Vera Sans Mono', family:'modern', character:0, pitch:1, panose:'020b0609030804020204'},
|
52
|
+
{name:'Bitstream Vera Sans', family:'swiss', character:0, pitch:2, panose:'020b0603030804020204'},
|
53
|
+
{name:'Bitstream Vera Serif', family:'roman', character:0, pitch:2, panose:'02060603050605020204'},
|
54
|
+
{name:'Book Antiqua', family:'roman', character:0, pitch:2, panose:'02040602050305030304'},
|
55
|
+
{name:'Bookman Old Style', family:'roman', character:0, pitch:2, panose:'02050604050505020204'},
|
56
|
+
{name:'Castellar', family:'roman', character:0, pitch:2, panose:'020a0402060406010301'},
|
57
|
+
{name:'Century Gothic', family:'swiss', character:0, pitch:2, panose:'020b0502020202020204'},
|
58
|
+
{name:'Comic Sans MS', family:'script', charater:0, pitch:2, panose:'030f0702030302020204'},
|
59
|
+
{name:'Courier New', family:'froman', character:0, pitch:1, panose:'02070309020205020404'},
|
60
|
+
{name:'Franklin Gothic Medium', family:'swiss', character:0, picth:2, panose:'020b0603020102020204'},
|
61
|
+
{name:'Garamond', family:'roman' , character:0, pitch:2, panose:'02020404030301010803'},
|
62
|
+
{name:'Georgia', family:'roman', character:0, pitch:2, panose:'02040502050405020303'},
|
63
|
+
{name:'Haettenschweiler', family:'swiss', character:0, pitch:2, panose:'020b0706040902060204'},
|
64
|
+
{name:'Impact', family:'swiss', character:0, pitch:2, panose:'020b0806030902050204'},
|
65
|
+
{name:'Lucida Console', family:'modern', character:0, pitch:1, panose:'020b0609040504020204'},
|
66
|
+
{name:'Lucida Sans Unicode', family:'swiss' , character:0, pitch:2, panose:'020b0602030504020204'},
|
67
|
+
{name:'Microsoft Sans Serif', family:'swiss', character:0, pitch:2, panose:'020b0604020202020204'},
|
68
|
+
{name:'Monotype Corsiva', family:'script', character:0, pitch:2, panose:'03010101010201010101'},
|
69
|
+
{name:'Palatino Linotype', family:'roman', character:0, pitch:2, panose:'02040502050505030304'},
|
70
|
+
{name:'Papyrus', family:'script', character:0, pitch:2, panose:'03070502060502030205'},
|
71
|
+
{name:'Sylfaen', family:'roman', character:0, pitch:2, panose:'010a0502050306030303'},
|
72
|
+
{name:'Symbol', family:'roman', character:2, pitch:2, panose:'05050102010706020507'},
|
73
|
+
{name:'Tahoma', family:'swiss', character:0, pitch:2, panose:'020b0604030504040204'},
|
74
|
+
{name:'Times New Roman', family:'froman', character:0, pitch:2, panose:'02020603050405020304'},
|
75
|
+
{name:'Trebuchet MS', family:'swiss', character:0, pitch:2, panose:'020b0603020202020204'},
|
76
|
+
{name:'Verdana', family:'swiss', character:0, pitch:2, panose:'020b0604030504040204'},
|
77
|
+
{name:'SimSun', family:'fnil', character:134, pitch:2},
|
78
|
+
{name:'KaiTi', family:'fmodern', character:134, pitch:1},
|
79
|
+
{name:'FangSong', family:'fnil', character:134, pitch:1},
|
80
|
+
{name:'SimHei', family:'fmodern', character:134, pitch:1},
|
81
|
+
{name:'NSimSun', family:'fmodern', character:134, pitch:1},
|
82
|
+
{name:'Microsoft YaHei', family:'fswiss', character:134, pitch:2}
|
57
83
|
]
|
58
84
|
|
59
|
-
attr_accessor :name, :
|
60
|
-
|
61
|
-
|
62
|
-
@family = family if family
|
85
|
+
attr_accessor :name, :family, :character_set, :pitch, :panose, :alternate
|
86
|
+
|
87
|
+
def initialize(name, family = 'fnil', character_set = 0, pitch = nil, panose = nil, alternate = nil)
|
63
88
|
@name = name
|
89
|
+
@family = family
|
64
90
|
@character_set = character_set
|
65
|
-
@
|
91
|
+
@pitch = pitch
|
92
|
+
@panose = panose
|
93
|
+
@alternate = alternate
|
66
94
|
end
|
67
95
|
|
68
|
-
def render(io)
|
69
|
-
io.group do
|
70
|
-
io.delimit do
|
71
|
-
io.cmd :f, @num
|
72
|
-
io.cmd @family
|
73
|
-
io.cmd :fprq, @prq
|
74
|
-
io.cmd :fcharset, @character_set
|
75
|
-
io.write ' '
|
76
|
-
io.write @name
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
96
|
end
|
81
97
|
end
|
82
98
|
|
data/lib/wiz_rtf/text.rb
CHANGED
@@ -13,7 +13,11 @@ module WizRtf
|
|
13
13
|
# creates a text of +str+ to the document.
|
14
14
|
# == Styles:
|
15
15
|
# * +text-align+ - sets the horizontal alignment of the text. optional values: +:left+, +:center+, +:right+
|
16
|
-
# * +font-family+ - set the font family of the text. optional values:
|
16
|
+
# * +font-family+ - set the font family of the text. optional values: 'Arial', 'Arial Black', 'Arial Narrow','Bitstream Vera Sans Mono',
|
17
|
+
# 'Bitstream Vera Sans','Bitstream Vera Serif','Book Antiqua','Bookman Old Style','Castellar','Century Gothic',
|
18
|
+
# 'Comic Sans MS','Courier New','Franklin Gothic Medium','Garamond','Georgia','Haettenschweiler','Impact','Lucida Console'
|
19
|
+
# 'Lucida Sans Unicode','Microsoft Sans Serif','Monotype Corsiva','Palatino Linotype','Papyrus','Sylfaen','Symbol'
|
20
|
+
# 'Tahoma','Times New Roman','Trebuchet MS','Verdana'.
|
17
21
|
# * +font-size+ - set font size of the text.
|
18
22
|
# * +font-bold+ - setting the value true for bold of the text.
|
19
23
|
# * +font-italic+ - setting the value true for italic of the text.
|
data/lib/wiz_rtf/version.rb
CHANGED
data/wiz_rtf.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["songgz"]
|
10
10
|
spec.email = ["sgzhe@163.com"]
|
11
11
|
|
12
|
-
spec.summary = %q{A gem for
|
13
|
-
spec.description = %q{A gem for
|
12
|
+
spec.summary = %q{A gem for creating RTF document.}
|
13
|
+
spec.description = %q{A gem for exporting Word Documents in ruby using the Microsoft Rich Text Format (RTF) Specification.}
|
14
14
|
spec.homepage = "https://github.com/songgz/wiz_rtf"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wiz_rtf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- songgz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,7 +38,8 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
|
-
description: A gem for
|
41
|
+
description: A gem for exporting Word Documents in ruby using the Microsoft Rich Text
|
42
|
+
Format (RTF) Specification.
|
42
43
|
email:
|
43
44
|
- sgzhe@163.com
|
44
45
|
executables: []
|
@@ -93,6 +94,5 @@ rubyforge_project:
|
|
93
94
|
rubygems_version: 2.2.3
|
94
95
|
signing_key:
|
95
96
|
specification_version: 4
|
96
|
-
summary: A gem for
|
97
|
-
Format (RTF) Specification.
|
97
|
+
summary: A gem for creating RTF document.
|
98
98
|
test_files: []
|