rrtf 1.0.0 → 1.0.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 +4 -4
- data/CHANGELOG.md +5 -0
- data/examples/08.rtf +2 -2
- data/examples/09.rtf +9 -13
- data/examples/09_shapes.rb +2 -1
- data/lib/rrtf/node/image_node.rb +26 -32
- data/lib/rrtf/properties/geometry_properties.rb +4 -4
- data/lib/rrtf/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4696bbf7c9772c7cf36a9fa33e10d2c5ddb0b60e
|
4
|
+
data.tar.gz: cb8b674323d9ad87c4d75386994c8554c956ef5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0827d3f9ce0bfb0c9e92efa91e0ef6dbfff0bc0008801d377ca261472baa3b5ab2854d2366ec8a82fd77d422cccae58db2b8533e8d2f94ae528ea73987172f8a'
|
7
|
+
data.tar.gz: 05eb44acdc466d1e1fd3a27669fcde7a2a65a09e07ebc7e678394551a3f10a8003d46a47c6dca281b449405fd0e0d777ee096ae1e4277efab11ddce5131f9901
|
data/CHANGELOG.md
CHANGED
@@ -22,3 +22,8 @@ _Version 1.0.0:_
|
|
22
22
|
- Add BorderFormatting module and BorderStyle class to allow border definition on paragraphs and images.
|
23
23
|
- Add ShadingFormatting module and ShadingStyle class to allow paragraph shading.
|
24
24
|
- Add ShapeNode class to implement basic shapes.
|
25
|
+
|
26
|
+
_Version 1.0.1:_
|
27
|
+
|
28
|
+
- Allow remote source for images with open-uri.
|
29
|
+
- Fix issue with setting "text_margin" for text boxes.
|
data/examples/08.rtf
CHANGED
@@ -7,11 +7,11 @@
|
|
7
7
|
\red255\green0\blue0;
|
8
8
|
}
|
9
9
|
{\info
|
10
|
-
{\createim\yr2017\
|
10
|
+
{\createim\yr2017\mo8\dy1\hr11\min6}
|
11
11
|
}
|
12
12
|
|
13
13
|
\hyphauto1\paperw12247\paperh15819\margl1440\margr1440\margt1440\margb1440
|
14
|
-
{\pict \box\brdrdot\brdrw100\brsp240\brdrcf1\picwgoal2880\pichgoal2880\picw500\pich500\
|
14
|
+
{\pict \box\brdrdot\brdrw100\brsp240\brdrcf1\picwgoal2880\pichgoal2880\picw500\pich500\bliptag0108171\pngblip
|
15
15
|
89504e470d0a1a0a0000000d49484452000001f4000001f40806000000cbd6df8a00000009704859
|
16
16
|
73000016250000162501495224f00000200049444154785eec5d077c5455f6fe26939e50549a2288
|
17
17
|
8282aeae2b56545ceb2a8a34459705114511e952a45705040ba0880a289d208a8a7f51b161050545
|
data/examples/09.rtf
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
\red255\green255\blue255;
|
8
8
|
}
|
9
9
|
{\info
|
10
|
-
{\createim\yr2017\
|
10
|
+
{\createim\yr2017\mo8\dy1\hr11\min8}
|
11
11
|
}
|
12
12
|
|
13
13
|
\hyphauto1\paperw12247\paperh15819\margl1440\margr1440\margt1440\margb1440
|
@@ -22,10 +22,6 @@
|
|
22
22
|
{\sp{\sn fFilled}{\sv 1}}
|
23
23
|
{\sp{\sn fillColor}{\sv 13421772}}
|
24
24
|
{\sp{\sn fLine}{\sv 0}}
|
25
|
-
{\sp{\sn geoLeft}{\sv 0}}
|
26
|
-
{\sp{\sn geoTop}{\sv 0}}
|
27
|
-
{\sp{\sn geoRight}{\sv 30000}}
|
28
|
-
{\sp{\sn geoBottom}{\sv 30000}}
|
29
25
|
{\sp{\sn fLineOK}{\sv 1}}
|
30
26
|
{\sp{\sn fFillOK}{\sv 1}}
|
31
27
|
{\sp{\sn f3DOK}{\sv 1}}
|
@@ -43,10 +39,10 @@
|
|
43
39
|
{\sp{\sn fLine}{\sv 1}}
|
44
40
|
{\sp{\sn lineColor}{\sv 0}}
|
45
41
|
{\sp{\sn lineWidth}{\sv 38100}}
|
46
|
-
{\sp{\sn
|
47
|
-
{\sp{\sn
|
48
|
-
{\sp{\sn
|
49
|
-
{\sp{\sn
|
42
|
+
{\sp{\sn dxTextLeft}{\sv 457200}}
|
43
|
+
{\sp{\sn dxTextRight}{\sv 457200}}
|
44
|
+
{\sp{\sn dyTextTop}{\sv 457200}}
|
45
|
+
{\sp{\sn dyTextBottom}{\sv 457200}}
|
50
46
|
{\sp{\sn fLineOK}{\sv 1}}
|
51
47
|
{\sp{\sn fFillOK}{\sv 1}}
|
52
48
|
{\sp{\sn f3DOK}{\sv 1}}
|
@@ -72,11 +68,11 @@ red
|
|
72
68
|
{\sp{\sn lineColor}{\sv 10027008}}
|
73
69
|
{\sp{\sn geoLeft}{\sv 0}}
|
74
70
|
{\sp{\sn geoTop}{\sv 0}}
|
75
|
-
{\sp{\sn geoRight}{\sv
|
76
|
-
{\sp{\sn geoBottom}{\sv
|
77
|
-
{\sp{\sn pVerticies}{\sv 8;6;(0,0);(
|
71
|
+
{\sp{\sn geoRight}{\sv 21600}}
|
72
|
+
{\sp{\sn geoBottom}{\sv 21600}}
|
73
|
+
{\sp{\sn pVerticies}{\sv 8;6;(0,0);(14400,0);(21600,0);(21600,10800);(21600,21600);(0,0)}}
|
78
74
|
{\sp{\sn pSegmentInfo}{\sv 2;6;16384;1;8193;1;24577;32768}}
|
79
|
-
{\sp{\sn pConnectionSites}{\sv 8;4;(0,0);(
|
75
|
+
{\sp{\sn pConnectionSites}{\sv 8;4;(0,0);(14400,0);(21600,21600);(0,0)}}
|
80
76
|
{\sp{\sn fLineOK}{\sv 1}}
|
81
77
|
{\sp{\sn fFillOK}{\sv 1}}
|
82
78
|
{\sp{\sn f3DOK}{\sv 1}}
|
data/examples/09_shapes.rb
CHANGED
@@ -23,7 +23,8 @@ rtf.geometry(
|
|
23
23
|
"width" => "3in",
|
24
24
|
"height" => "3in",
|
25
25
|
"horizontal_reference" => "PAGE",
|
26
|
-
"vertical_reference" => "PAGE"
|
26
|
+
"vertical_reference" => "PAGE",
|
27
|
+
"text_margin" => "0.5in"
|
27
28
|
) do |box|
|
28
29
|
box.paragraph("foreground_color" => '#ffffff') do |p|
|
29
30
|
p << "Should you ever find yourself on a spacefaring vessel wearing a "
|
data/lib/rrtf/node/image_node.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'fastimage'
|
2
|
+
require 'open-uri'
|
2
3
|
|
3
4
|
module RRTF
|
4
5
|
# This class represents an image within a RTF document. Currently only the
|
@@ -60,7 +61,7 @@ module RRTF
|
|
60
61
|
# This is the constructor for the ImageNode class.
|
61
62
|
#
|
62
63
|
# @param parent [Node] a reference to the node that owns the new image node.
|
63
|
-
# @param source [String, File] a reference to the image source; this must be a String or a File.
|
64
|
+
# @param source [String, File] a reference to the image source; this must be a String, String URL, or a File.
|
64
65
|
# @param id [Integer] a unique 32-bit identifier for the image.
|
65
66
|
# @param options [Hash] a hash of options.
|
66
67
|
# @option options [String] "width" (nil) the display width of the image in twips (can be a string, see {Utilities.value2twips}).
|
@@ -72,7 +73,7 @@ module RRTF
|
|
72
73
|
# specified source does not exist or cannot be accessed.
|
73
74
|
def initialize(parent, source, id, options = {})
|
74
75
|
super(parent)
|
75
|
-
@source =
|
76
|
+
@source = source
|
76
77
|
@id = id
|
77
78
|
|
78
79
|
# load default options
|
@@ -95,16 +96,19 @@ module RRTF
|
|
95
96
|
end
|
96
97
|
|
97
98
|
# Store path to image.
|
98
|
-
|
99
|
-
|
99
|
+
if @source.is_a?(String)
|
100
|
+
begin
|
101
|
+
@source = open(@source)
|
102
|
+
rescue OpenURI::HTTPError => error
|
103
|
+
response = error.io
|
104
|
+
RTFError.fire("Could not open '#{@source}'. Server responded with #{response.status.join(',')}.")
|
105
|
+
rescue Exception => error
|
106
|
+
RTFError.fire("Could not open '#{@source}'. #{error.message}.")
|
107
|
+
end # rescue block
|
108
|
+
elsif !@source.respond_to?(:each_byte)
|
109
|
+
RTFError.fire("A string or object that responds to :each_byte must be supplied - '#{@source}' given.")
|
110
|
+
end # unless
|
100
111
|
|
101
|
-
# Check the file's existence and accessibility.
|
102
|
-
if !File.exist?(@source)
|
103
|
-
RTFError.fire("Unable to find the #{File.basename(@source)} file.")
|
104
|
-
end
|
105
|
-
if !File.readable?(@source)
|
106
|
-
RTFError.fire("Access to the #{File.basename(@source)} file denied.")
|
107
|
-
end
|
108
112
|
# Attempt to determine image type and dimensions.
|
109
113
|
@type, @width, @height = self.class.inspect(@source)
|
110
114
|
if @type.nil?
|
@@ -128,18 +132,16 @@ module RRTF
|
|
128
132
|
text << "\\picw#{@width}\\pich#{@height}\\bliptag#{@id}"
|
129
133
|
text << "\\#{@type}\n"
|
130
134
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
end # each_byte
|
142
|
-
end # open_file
|
135
|
+
@source.each_byte do |byte|
|
136
|
+
hex_str = byte.to_s(16)
|
137
|
+
hex_str.insert(0,'0') if hex_str.length == 1
|
138
|
+
text << hex_str
|
139
|
+
count += 1
|
140
|
+
if count == 40
|
141
|
+
text << "\n"
|
142
|
+
count = 0
|
143
|
+
end # if
|
144
|
+
end # each_byte
|
143
145
|
text << "\n}"
|
144
146
|
|
145
147
|
text.string
|
@@ -162,14 +164,6 @@ module RRTF
|
|
162
164
|
[(@width*scale_factor).to_i, (@height*scale_factor).to_i]
|
163
165
|
end
|
164
166
|
end # case
|
165
|
-
end
|
166
|
-
|
167
|
-
def open_file(&block)
|
168
|
-
if block
|
169
|
-
File.open(@source, 'rb', &block)
|
170
|
-
else
|
171
|
-
File.open(@source, 'rb')
|
172
|
-
end # if
|
173
|
-
end # open_file()
|
167
|
+
end # size_image()
|
174
168
|
end # End of the ImageNode class.
|
175
169
|
end # module RRTF
|
@@ -320,10 +320,10 @@ module RRTF
|
|
320
320
|
next if margin.nil?
|
321
321
|
|
322
322
|
margin = Page::Margin.new(margin)
|
323
|
-
left = Utilities.value2emu(margin.left
|
324
|
-
right = Utilities.value2emu(margin.right
|
325
|
-
top = Utilities.value2emu(margin.top
|
326
|
-
bottom = Utilities.value2emu(margin.bottom
|
323
|
+
left = Utilities.value2emu("#{margin.left}twip")
|
324
|
+
right = Utilities.value2emu("#{margin.right}twip")
|
325
|
+
top = Utilities.value2emu("#{margin.top}twip")
|
326
|
+
bottom = Utilities.value2emu("#{margin.bottom}twip")
|
327
327
|
|
328
328
|
instance_variable_set("@#{margin_attr}", margin)
|
329
329
|
instance_variable_set("@#{margin_attr}_left", left)
|
data/lib/rrtf/version.rb
CHANGED