wiz_rtf 0.6.7 → 0.6.8
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 +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: []
|