biblicit 2.0.3 → 2.0.4
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/README.md +0 -2
- data/biblicit.gemspec +1 -1
- data/parscit/bin/citeExtract.pl +9 -161
- data/parscit/bin/sectExtract.pl +0 -14
- data/parscit/lib/ParsCit/Controller.pm +0 -59
- data/parscit/lib/ParsCit/PreProcess.pm +0 -4
- data/parscit/lib/ParsCit/Tr2crfpp.pm +1 -7
- metadata +4 -24
- data/parscit/bin/sectLabel/processOmniXML.pl +0 -1427
- data/parscit/bin/sectLabel/processOmniXML_new.pl +0 -1025
- data/parscit/bin/sectLabel/processOmniXMLv2.pl +0 -1529
- data/parscit/bin/sectLabel/processOmniXMLv3.pl +0 -964
- data/parscit/bin/sectLabel/simplifyOmniXML.pl +0 -382
- data/parscit/bin/xml2train.pl +0 -193
- data/parscit/lib/Omni/Config.pm +0 -93
- data/parscit/lib/Omni/Omnicell.pm +0 -263
- data/parscit/lib/Omni/Omnicol.pm +0 -292
- data/parscit/lib/Omni/Omnidd.pm +0 -328
- data/parscit/lib/Omni/Omnidoc.pm +0 -153
- data/parscit/lib/Omni/Omniframe.pm +0 -223
- data/parscit/lib/Omni/Omniline.pm +0 -423
- data/parscit/lib/Omni/Omnipage.pm +0 -282
- data/parscit/lib/Omni/Omnipara.pm +0 -232
- data/parscit/lib/Omni/Omnirun.pm +0 -303
- data/parscit/lib/Omni/Omnitable.pm +0 -336
- data/parscit/lib/Omni/Omniword.pm +0 -162
- data/parscit/lib/Omni/Traversal.pm +0 -313
- data/parscit/lib/SectLabel/AAMatching.pm +0 -1949
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
package Omni::Omnipara;
|
|
2
|
-
|
|
3
|
-
# Configuration
|
|
4
|
-
use strict;
|
|
5
|
-
|
|
6
|
-
# Local libraries
|
|
7
|
-
use Omni::Config;
|
|
8
|
-
use Omni::Omniword;
|
|
9
|
-
use Omni::Omnirun;
|
|
10
|
-
use Omni::Omniline;
|
|
11
|
-
|
|
12
|
-
# Extern libraries
|
|
13
|
-
use XML::Twig;
|
|
14
|
-
use XML::Parser;
|
|
15
|
-
|
|
16
|
-
# Global variables
|
|
17
|
-
my $tag_list = $Omni::Config::tag_list;
|
|
18
|
-
my $att_list = $Omni::Config::att_list;
|
|
19
|
-
my $obj_list = $Omni::Config::obj_list;
|
|
20
|
-
|
|
21
|
-
# Temporary variables
|
|
22
|
-
my $tmp_content = undef;
|
|
23
|
-
my $tmp_bottom = undef;
|
|
24
|
-
my $tmp_top = undef;
|
|
25
|
-
my $tmp_left = undef;
|
|
26
|
-
my $tmp_right = undef;
|
|
27
|
-
my $tmp_language = undef;
|
|
28
|
-
my $tmp_alignment = undef;
|
|
29
|
-
my $tmp_spaceb = undef;
|
|
30
|
-
my @tmp_lines = ();
|
|
31
|
-
|
|
32
|
-
###
|
|
33
|
-
# A para object in Omnipage xml: a paragraph contains zero or many lines
|
|
34
|
-
#
|
|
35
|
-
# Do Hoang Nhat Huy, 09 Jan 2011
|
|
36
|
-
###
|
|
37
|
-
# Initialization
|
|
38
|
-
sub new
|
|
39
|
-
{
|
|
40
|
-
my ($class) = @_;
|
|
41
|
-
|
|
42
|
-
# Lines: a paragraph can have multiple lines
|
|
43
|
-
my @lines = ();
|
|
44
|
-
|
|
45
|
-
# Class members
|
|
46
|
-
my $self = { '_self' => $obj_list->{ 'OMNIPARA' },
|
|
47
|
-
'_raw' => undef,
|
|
48
|
-
'_content' => undef,
|
|
49
|
-
'_bottom' => undef,
|
|
50
|
-
'_top' => undef,
|
|
51
|
-
'_left' => undef,
|
|
52
|
-
'_right' => undef,
|
|
53
|
-
'_language' => undef,
|
|
54
|
-
'_alignment' => undef,
|
|
55
|
-
'_spaceb' => undef,
|
|
56
|
-
'_lines' => \@lines };
|
|
57
|
-
|
|
58
|
-
bless $self, $class;
|
|
59
|
-
return $self;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
#
|
|
63
|
-
sub set_raw
|
|
64
|
-
{
|
|
65
|
-
my ($self, $raw) = @_;
|
|
66
|
-
|
|
67
|
-
# Save the raw xml <para> ... </para>
|
|
68
|
-
$self->{ '_raw' } = $raw;
|
|
69
|
-
|
|
70
|
-
# Parse the raw string
|
|
71
|
-
my $twig_roots = { $tag_list->{ 'PARA' } => 1 };
|
|
72
|
-
my $twig_handlers = { $tag_list->{ 'PARA' } => \&parse};
|
|
73
|
-
|
|
74
|
-
# XML::Twig
|
|
75
|
-
my $twig = new XML::Twig( twig_roots => $twig_roots,
|
|
76
|
-
twig_handlers => $twig_handlers,
|
|
77
|
-
pretty_print => 'indented' );
|
|
78
|
-
|
|
79
|
-
# Start the XML parsing
|
|
80
|
-
$twig->parse($raw);
|
|
81
|
-
$twig->purge;
|
|
82
|
-
|
|
83
|
-
# Copy information from temporary variables to class members
|
|
84
|
-
$self->{ '_bottom' } = $tmp_bottom;
|
|
85
|
-
$self->{ '_top' } = $tmp_top;
|
|
86
|
-
$self->{ '_left' } = $tmp_left;
|
|
87
|
-
$self->{ '_right' } = $tmp_right;
|
|
88
|
-
$self->{ '_language' } = $tmp_language;
|
|
89
|
-
$self->{ '_alignment' } = $tmp_alignment;
|
|
90
|
-
$self->{ '_spaceb' } = $tmp_spaceb;
|
|
91
|
-
|
|
92
|
-
# Copy all lines
|
|
93
|
-
@{$self->{ '_lines' } } = @tmp_lines;
|
|
94
|
-
|
|
95
|
-
# Copy content
|
|
96
|
-
$self->{ '_content' } = $tmp_content;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
sub get_raw
|
|
100
|
-
{
|
|
101
|
-
my ($self) = @_;
|
|
102
|
-
return $self->{ '_raw' };
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
sub parse
|
|
106
|
-
{
|
|
107
|
-
my ($twig, $node) = @_;
|
|
108
|
-
|
|
109
|
-
# At first, content is blank
|
|
110
|
-
$tmp_content = "";
|
|
111
|
-
# because there's no line
|
|
112
|
-
@tmp_lines = ();
|
|
113
|
-
|
|
114
|
-
# Get <para> node attributes
|
|
115
|
-
$tmp_bottom = GetNodeAttr($node, $att_list->{ 'BOTTOM' });
|
|
116
|
-
$tmp_top = GetNodeAttr($node, $att_list->{ 'TOP' });
|
|
117
|
-
$tmp_left = GetNodeAttr($node, $att_list->{ 'LEFT' });
|
|
118
|
-
$tmp_right = GetNodeAttr($node, $att_list->{ 'RIGHT' });
|
|
119
|
-
$tmp_language = GetNodeAttr($node, $att_list->{ 'LANGUAGE' });
|
|
120
|
-
$tmp_alignment = GetNodeAttr($node, $att_list->{ 'ALIGN' });
|
|
121
|
-
$tmp_spaceb = GetNodeAttr($node, $att_list->{ 'SPACEB' });
|
|
122
|
-
|
|
123
|
-
# Check if there's any bullet
|
|
124
|
-
my $bullet = $node->first_child( $tag_list->{ 'BULLET' } );
|
|
125
|
-
my $has_bullet = (defined $bullet) ? 1 : 0;
|
|
126
|
-
|
|
127
|
-
# Check if there's any line
|
|
128
|
-
my @all_lines = $node->descendants( $tag_list->{ 'LINE' } );
|
|
129
|
-
foreach my $ln (@all_lines)
|
|
130
|
-
{
|
|
131
|
-
my $line = new Omni::Omniline();
|
|
132
|
-
|
|
133
|
-
# Set raw content
|
|
134
|
-
$line->set_raw($ln->sprint());
|
|
135
|
-
|
|
136
|
-
# Set bullet if needed
|
|
137
|
-
if ($has_bullet == 1) { $line->set_bullet('true'); }
|
|
138
|
-
|
|
139
|
-
# Update line list
|
|
140
|
-
push @tmp_lines, $line;
|
|
141
|
-
|
|
142
|
-
# Update content
|
|
143
|
-
$tmp_content = $tmp_content . $line->get_content() . "\n";
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
sub get_name
|
|
148
|
-
{
|
|
149
|
-
my ($self) = @_;
|
|
150
|
-
return $self->{ '_self' };
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
sub get_objs_ref
|
|
154
|
-
{
|
|
155
|
-
my ($self) = @_;
|
|
156
|
-
return $self->{ '_lines' };
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
sub get_content
|
|
160
|
-
{
|
|
161
|
-
my ($self) = @_;
|
|
162
|
-
return $self->{ '_content' };
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
sub get_bottom_pos
|
|
166
|
-
{
|
|
167
|
-
my ($self) = @_;
|
|
168
|
-
return $self->{ '_bottom' };
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
sub get_top_pos
|
|
172
|
-
{
|
|
173
|
-
my ($self) = @_;
|
|
174
|
-
return $self->{ '_top' };
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
sub get_left_pos
|
|
178
|
-
{
|
|
179
|
-
my ($self) = @_;
|
|
180
|
-
return $self->{ '_left' };
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
sub get_right_pos
|
|
184
|
-
{
|
|
185
|
-
my ($self) = @_;
|
|
186
|
-
return $self->{ '_right' };
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
sub get_language
|
|
190
|
-
{
|
|
191
|
-
my ($self) = @_;
|
|
192
|
-
return $self->{ '_language' };
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
sub get_alignment
|
|
196
|
-
{
|
|
197
|
-
my ($self) = @_;
|
|
198
|
-
return $self->{ '_alignment' };
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
sub get_space_before
|
|
202
|
-
{
|
|
203
|
-
my ($self) = @_;
|
|
204
|
-
return $self->{ '_spaceb' };
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
# Support functions
|
|
208
|
-
sub GetNodeAttr
|
|
209
|
-
{
|
|
210
|
-
my ($node, $attr) = @_;
|
|
211
|
-
return ($node->att($attr) ? $node->att($attr) : "");
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
sub SetNodeAttr
|
|
215
|
-
{
|
|
216
|
-
my ($node, $attr, $value) = @_;
|
|
217
|
-
$node->set_att($attr, $value);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
sub GetNodeText
|
|
221
|
-
{
|
|
222
|
-
my ($node) = @_;
|
|
223
|
-
return $node->text;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
sub SetNodeText
|
|
227
|
-
{
|
|
228
|
-
my ($node, $value) = @_;
|
|
229
|
-
$node->set_text($value);
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
1;
|
data/parscit/lib/Omni/Omnirun.pm
DELETED
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
package Omni::Omnirun;
|
|
2
|
-
|
|
3
|
-
# Configuration
|
|
4
|
-
use strict;
|
|
5
|
-
|
|
6
|
-
# Local libraries
|
|
7
|
-
use Omni::Config;
|
|
8
|
-
use Omni::Omniword;
|
|
9
|
-
|
|
10
|
-
# Extern libraries
|
|
11
|
-
use XML::Twig;
|
|
12
|
-
use XML::Parser;
|
|
13
|
-
|
|
14
|
-
# Global variables
|
|
15
|
-
my $tag_list = $Omni::Config::tag_list;
|
|
16
|
-
my $att_list = $Omni::Config::att_list;
|
|
17
|
-
my $obj_list = $Omni::Config::obj_list;
|
|
18
|
-
|
|
19
|
-
# Temporary variables
|
|
20
|
-
my $tmp_content = undef;
|
|
21
|
-
my $tmp_font_face = undef;
|
|
22
|
-
my $tmp_font_family = undef;
|
|
23
|
-
my $tmp_font_pitch = undef;
|
|
24
|
-
my $tmp_font_size = undef;
|
|
25
|
-
my $tmp_spacing = undef;
|
|
26
|
-
my $tmp_su_script = undef; # sub-script or super-script
|
|
27
|
-
my $tmp_underline = undef;
|
|
28
|
-
my $tmp_bold = undef;
|
|
29
|
-
my $tmp_italic = undef;
|
|
30
|
-
my @tmp_words = ();
|
|
31
|
-
|
|
32
|
-
###
|
|
33
|
-
# A run object in Omnipage xml: a run contains zero or many words
|
|
34
|
-
#
|
|
35
|
-
# Do Hoang Nhat Huy, 07 Jan 2011
|
|
36
|
-
###
|
|
37
|
-
# Initialization
|
|
38
|
-
sub new
|
|
39
|
-
{
|
|
40
|
-
my ($class) = @_;
|
|
41
|
-
|
|
42
|
-
# Words: a run can have multiple words
|
|
43
|
-
my @words = ();
|
|
44
|
-
|
|
45
|
-
# Class members
|
|
46
|
-
my $self = { '_self' => $obj_list->{ 'OMNIRUN' },
|
|
47
|
-
'_raw' => undef,
|
|
48
|
-
'_content' => undef,
|
|
49
|
-
'_font_face' => undef,
|
|
50
|
-
'_font_family' => undef,
|
|
51
|
-
'_font_pitch' => undef,
|
|
52
|
-
'_font_size' => undef,
|
|
53
|
-
'_spacing' => undef,
|
|
54
|
-
'_su_script' => undef, # sub-script or super-script
|
|
55
|
-
'_underline' => undef,
|
|
56
|
-
'_bold' => undef,
|
|
57
|
-
'_italic' => undef,
|
|
58
|
-
'_words' => \@words };
|
|
59
|
-
|
|
60
|
-
bless $self, $class;
|
|
61
|
-
return $self;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
#
|
|
65
|
-
sub set_raw
|
|
66
|
-
{
|
|
67
|
-
my ($self, $raw) = @_;
|
|
68
|
-
|
|
69
|
-
# Save the raw xml <run> ... </run>
|
|
70
|
-
$self->{ '_raw' } = $raw;
|
|
71
|
-
|
|
72
|
-
# Parse the raw string
|
|
73
|
-
my $twig_roots = { $tag_list->{ 'RUN' } => 1 };
|
|
74
|
-
my $twig_handlers = { $tag_list->{ 'RUN' } => \&parse};
|
|
75
|
-
|
|
76
|
-
# XML::Twig
|
|
77
|
-
my $twig= new XML::Twig( twig_roots => $twig_roots,
|
|
78
|
-
twig_handlers => $twig_handlers,
|
|
79
|
-
pretty_print => 'indented' );
|
|
80
|
-
|
|
81
|
-
# Start the XML parsing
|
|
82
|
-
$twig->parse($raw);
|
|
83
|
-
$twig->purge;
|
|
84
|
-
|
|
85
|
-
# Copy information from temporary variables to class members
|
|
86
|
-
$self->{ '_font_face' } = $tmp_font_face;
|
|
87
|
-
$self->{ '_font_family' } = $tmp_font_family;
|
|
88
|
-
$self->{ '_font_pitch' } = $tmp_font_pitch;
|
|
89
|
-
$self->{ '_font_size' } = $tmp_font_size;
|
|
90
|
-
$self->{ '_spacing' } = $tmp_spacing;
|
|
91
|
-
$self->{ '_su_script' } = $tmp_su_script;
|
|
92
|
-
$self->{ '_underline' } = $tmp_underline;
|
|
93
|
-
$self->{ '_bold' } = $tmp_bold;
|
|
94
|
-
$self->{ '_italic' } = $tmp_italic;
|
|
95
|
-
|
|
96
|
-
# Copy all words
|
|
97
|
-
@{ $self->{ '_words' } } = @tmp_words;
|
|
98
|
-
|
|
99
|
-
# Copy content
|
|
100
|
-
$self->{ '_content' } = $tmp_content;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
sub get_raw
|
|
104
|
-
{
|
|
105
|
-
my ($self) = @_;
|
|
106
|
-
return $self->{ '_raw' };
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
sub parse
|
|
110
|
-
{
|
|
111
|
-
my ($twig, $node) = @_;
|
|
112
|
-
|
|
113
|
-
# Get <run> node attributes
|
|
114
|
-
$tmp_font_face = GetNodeAttr($node, $att_list->{ 'FONTFACE' });
|
|
115
|
-
$tmp_font_family = GetNodeAttr($node, $att_list->{ 'FONTFAMILY' });
|
|
116
|
-
$tmp_font_pitch = GetNodeAttr($node, $att_list->{ 'FONTPITCH' });
|
|
117
|
-
$tmp_font_size = GetNodeAttr($node, $att_list->{ 'FONTSIZE' });
|
|
118
|
-
$tmp_spacing = GetNodeAttr($node, $att_list->{ 'SPACING' });
|
|
119
|
-
$tmp_su_script = GetNodeAttr($node, $att_list->{ 'SUSCRIPT' }); # sub-script or super-script
|
|
120
|
-
$tmp_underline = GetNodeAttr($node, $att_list->{ 'UNDERLINE' });
|
|
121
|
-
$tmp_bold = GetNodeAttr($node, $att_list->{ 'BOLD' });
|
|
122
|
-
$tmp_italic = GetNodeAttr($node, $att_list->{ 'ITALIC' });
|
|
123
|
-
|
|
124
|
-
# At first, content is blank
|
|
125
|
-
$tmp_content = "";
|
|
126
|
-
# because there's no word
|
|
127
|
-
@tmp_words = ();
|
|
128
|
-
|
|
129
|
-
# Check if there's any child
|
|
130
|
-
my $child = $node->first_child();
|
|
131
|
-
|
|
132
|
-
# Has some child
|
|
133
|
-
# #PCDATA$ is the returned path from XML::Twig if $child is data content
|
|
134
|
-
if ((defined $child) && ($child->path() =~ m/#PCDATA$/))
|
|
135
|
-
{
|
|
136
|
-
my $content = undef;
|
|
137
|
-
$content = GetNodeText($node);
|
|
138
|
-
$content =~ s/^\s+|\s+$//g;
|
|
139
|
-
|
|
140
|
-
# Save the content
|
|
141
|
-
$tmp_content = $tmp_content . $content;
|
|
142
|
-
}
|
|
143
|
-
else
|
|
144
|
-
{
|
|
145
|
-
# Some type of separator
|
|
146
|
-
my $space_tag = $tag_list->{ 'SPACE' };
|
|
147
|
-
my $tab_tag = $tag_list->{ 'TAB' };
|
|
148
|
-
my $newline_tag = $tag_list->{ 'NEWLINE' };
|
|
149
|
-
my $word_tag = $tag_list->{ 'WORD' };
|
|
150
|
-
|
|
151
|
-
# Get every word in the <run> together with <space> and <tab> ...
|
|
152
|
-
my $obj = $node->first_child();
|
|
153
|
-
while (defined $obj)
|
|
154
|
-
{
|
|
155
|
-
my $xpath = $obj->path();
|
|
156
|
-
|
|
157
|
-
# if this child is <wd>
|
|
158
|
-
if ($xpath =~ m/\/$word_tag$/)
|
|
159
|
-
{
|
|
160
|
-
my $word = new Omni::Omniword();
|
|
161
|
-
|
|
162
|
-
# Set raw content
|
|
163
|
-
$word->set_raw($obj->sprint);
|
|
164
|
-
|
|
165
|
-
# Update word list
|
|
166
|
-
push @tmp_words, $word;
|
|
167
|
-
|
|
168
|
-
# Update content
|
|
169
|
-
$tmp_content = $tmp_content . $word->get_content;
|
|
170
|
-
}
|
|
171
|
-
# if this child is <space>
|
|
172
|
-
elsif ($xpath =~ m/\/$space_tag$/)
|
|
173
|
-
{
|
|
174
|
-
$tmp_content = $tmp_content . " ";
|
|
175
|
-
}
|
|
176
|
-
# if this child is <tab>
|
|
177
|
-
elsif ($xpath =~ m/\/$tab_tag$/)
|
|
178
|
-
{
|
|
179
|
-
$tmp_content = $tmp_content . "\t";
|
|
180
|
-
}
|
|
181
|
-
# if this child is <nl>
|
|
182
|
-
#elsif ($xpath =~ m/\/$newline_tag$/)
|
|
183
|
-
#{
|
|
184
|
-
# $tmp_content = $tmp_content . "\n";
|
|
185
|
-
#}
|
|
186
|
-
|
|
187
|
-
# Little brother
|
|
188
|
-
if ($obj->is_last_child)
|
|
189
|
-
{
|
|
190
|
-
last;
|
|
191
|
-
}
|
|
192
|
-
else
|
|
193
|
-
{
|
|
194
|
-
$obj = $obj->next_sibling();
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
sub add_word
|
|
201
|
-
{
|
|
202
|
-
my ($self, $word) = @_;
|
|
203
|
-
push @{ $self->{ '_words' } }, $word;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
sub get_name
|
|
207
|
-
{
|
|
208
|
-
my ($self) = @_;
|
|
209
|
-
return $self->{ '_self' };
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
sub get_objs_ref
|
|
213
|
-
{
|
|
214
|
-
my ($self) = @_;
|
|
215
|
-
return $self->{ '_words' };
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
sub get_content
|
|
219
|
-
{
|
|
220
|
-
my ($self) = @_;
|
|
221
|
-
return $self->{ '_content' };
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
sub get_font_face
|
|
225
|
-
{
|
|
226
|
-
my ($self) = @_;
|
|
227
|
-
return $self->{ '_font_face' };
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
sub get_font_family
|
|
231
|
-
{
|
|
232
|
-
my ($self) = @_;
|
|
233
|
-
return $self->{ '_font_family' };
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
sub get_font_pitch
|
|
237
|
-
{
|
|
238
|
-
my ($self) = @_;
|
|
239
|
-
return $self->{ '_font_pitch' };
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
sub get_font_size
|
|
243
|
-
{
|
|
244
|
-
my ($self) = @_;
|
|
245
|
-
return $self->{ '_font_size' };
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
sub get_spacing
|
|
249
|
-
{
|
|
250
|
-
my ($self) = @_;
|
|
251
|
-
return $self->{ '_spacing' };
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
sub get_suscript
|
|
255
|
-
{
|
|
256
|
-
my ($self) = @_;
|
|
257
|
-
return $self->{ '_su_script' };
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
sub get_underline
|
|
261
|
-
{
|
|
262
|
-
my ($self) = @_;
|
|
263
|
-
return $self->{ '_underline' };
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
sub get_bold
|
|
267
|
-
{
|
|
268
|
-
my ($self) = @_;
|
|
269
|
-
return $self->{ '_bold' };
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
sub get_italic
|
|
273
|
-
{
|
|
274
|
-
my ($self) = @_;
|
|
275
|
-
return $self->{ '_italic' };
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
# Support functions
|
|
279
|
-
sub GetNodeAttr
|
|
280
|
-
{
|
|
281
|
-
my ($node, $attr) = @_;
|
|
282
|
-
return ($node->att($attr) ? $node->att($attr) : "");
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
sub SetNodeAttr
|
|
286
|
-
{
|
|
287
|
-
my ($node, $attr, $value) = @_;
|
|
288
|
-
$node->set_att($attr, $value);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
sub GetNodeText
|
|
292
|
-
{
|
|
293
|
-
my ($node) = @_;
|
|
294
|
-
return $node->text;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
sub SetNodeText
|
|
298
|
-
{
|
|
299
|
-
my ($node, $value) = @_;
|
|
300
|
-
$node->set_text($value);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
1;
|