html2doc 1.4.2.1 → 1.4.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.
- checksums.yaml +4 -4
- data/html2doc.gemspec +5 -3
- data/lib/html2doc/base.rb +2 -1
- data/lib/html2doc/math.rb +10 -8
- data/lib/html2doc/mime.rb +19 -8
- data/lib/html2doc/version.rb +1 -1
- metadata +7 -29
- data/.github/workflows/rake.yml +0 -15
- data/Rakefile +0 -6
- data/bin/console +0 -14
- data/bin/html2doc +0 -27
- data/bin/rspec +0 -18
- data/bin/setup +0 -8
- data/spec/19160-6.png +0 -0
- data/spec/19160-7.gif +0 -0
- data/spec/19160-8.jpg +0 -0
- data/spec/examples/header.html +0 -184
- data/spec/examples/rice.doc +0 -17713
- data/spec/examples/rice.html +0 -1625
- data/spec/examples/rice_images/rice_image1.gif +0 -0
- data/spec/examples/rice_images/rice_image1.png +0 -0
- data/spec/examples/rice_images/rice_image2.png +0 -0
- data/spec/examples/rice_images/rice_image3_1.png +0 -0
- data/spec/examples/rice_images/rice_image3_2.png +0 -0
- data/spec/examples/rice_images/rice_image3_3.png +0 -0
- data/spec/header.html +0 -184
- data/spec/header_img.html +0 -186
- data/spec/html2doc_spec.rb +0 -878
- data/spec/spec_helper.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0519bc0cdea11bd73e5ef3c07236793fc46ade0f08e7c36258e8fe0918808907'
|
4
|
+
data.tar.gz: 919f5ee2632c524b30a72f5eb9f1c647c386eda1946aab89ea7f74e603e90aa1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c3c6b592ebff133758628ef1cd664a9c7e13390bd63551026c785992f0c6ae770d7593aa5052477e1aa08fedd033d749056857a9bb73b1e5babd4aa2e657ff4
|
7
|
+
data.tar.gz: 907db4fb0ae7c64168c5b8436b1d2162591f05d9785928cb393d5e7ea4e7fddc086c96534a81e5d3f42df1c048df5c00b313e08f96dbb91a88b0dd95d3ee6774
|
data/html2doc.gemspec
CHANGED
@@ -20,9 +20,11 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.bindir = "bin"
|
22
22
|
spec.require_paths = ["lib"]
|
23
|
-
spec.files = `git ls-files`.split("\
|
24
|
-
|
25
|
-
|
23
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
24
|
+
f.match(%r{^(test|spec|features|bin|.github)/}) \
|
25
|
+
|| f.match(%r{Rakefile|bin/rspec})
|
26
|
+
end
|
27
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
26
28
|
|
27
29
|
spec.add_dependency "asciimath", "~> 2.0.2"
|
28
30
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
data/lib/html2doc/base.rb
CHANGED
@@ -15,6 +15,7 @@ class Html2Doc
|
|
15
15
|
@debug = hash[:debug]
|
16
16
|
@liststyles = hash[:liststyles]
|
17
17
|
@stylesheet = hash[:stylesheet]
|
18
|
+
@c = HTMLEntities.new
|
18
19
|
@xsltemplate =
|
19
20
|
Nokogiri::XSLT(File.read(File.join(File.dirname(__FILE__), "mml2omml.xsl"),
|
20
21
|
encoding: "utf-8"))
|
@@ -49,7 +50,7 @@ class Html2Doc
|
|
49
50
|
def create_dir(filename, dir)
|
50
51
|
dir and return clear_dir(dir)
|
51
52
|
dir = "#{filename}_files"
|
52
|
-
|
53
|
+
FileUtils.mkdir_p(dir)
|
53
54
|
clear_dir(dir)
|
54
55
|
end
|
55
56
|
|
data/lib/html2doc/math.rb
CHANGED
@@ -5,24 +5,26 @@ require "nokogiri"
|
|
5
5
|
require "plane1converter"
|
6
6
|
|
7
7
|
class Html2Doc
|
8
|
-
def asciimath_to_mathml1(expr)
|
9
|
-
AsciiMath::MathMLBuilder.new(msword: true).append_expression(
|
10
|
-
AsciiMath.parse(
|
11
|
-
).to_s
|
12
|
-
|
8
|
+
def asciimath_to_mathml1(expr, retain_asciimath)
|
9
|
+
ret = AsciiMath::MathMLBuilder.new(msword: true).append_expression(
|
10
|
+
AsciiMath.parse(@c.decode(expr)).ast,
|
11
|
+
).to_s.gsub(/<math>/, "<math xmlns='http://www.w3.org/1998/Math/MathML'>")
|
12
|
+
retain_asciimath and
|
13
|
+
ret += "<asciimath>#{@c.encode(@c.decode(expr), :basic)}</asciimath>"
|
14
|
+
ret
|
13
15
|
rescue StandardError => e
|
14
16
|
puts "parsing: #{expr}"
|
15
17
|
puts e.message
|
16
18
|
raise e
|
17
19
|
end
|
18
20
|
|
19
|
-
def asciimath_to_mathml(doc, delims)
|
21
|
+
def asciimath_to_mathml(doc, delims, retain_asciimath: false)
|
20
22
|
return doc if delims.nil? || delims.size < 2
|
21
23
|
|
22
24
|
m = doc.split(/(#{Regexp.escape(delims[0])}|#{Regexp.escape(delims[1])})/)
|
23
25
|
m.each_slice(4).map.with_index do |(*a), i|
|
24
26
|
progress_conv(i, 500, (m.size / 4).floor, 1000, "AsciiMath")
|
25
|
-
a[2].nil?
|
27
|
+
a[2].nil? or a[2] = asciimath_to_mathml1(a[2], retain_asciimath)
|
26
28
|
a.size > 1 ? a[0] + a[2] : a[0]
|
27
29
|
end.join
|
28
30
|
end
|
@@ -122,7 +124,7 @@ class Html2Doc
|
|
122
124
|
xml.traverse do |n|
|
123
125
|
next unless n.text?
|
124
126
|
|
125
|
-
n.replace(Plane1Converter.conv(
|
127
|
+
n.replace(Plane1Converter.conv(@c.decode(n.text), font))
|
126
128
|
end
|
127
129
|
xml
|
128
130
|
end
|
data/lib/html2doc/mime.rb
CHANGED
@@ -67,22 +67,23 @@ class Html2Doc
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def contentid(mhtml)
|
70
|
-
mhtml.gsub %r{(<img[^>]*?src=")([
|
70
|
+
mhtml.gsub %r{(<img[^>]*?src=")([^"']+)(['"])}m do |m|
|
71
71
|
repl = "#{$1}cid:#{File.basename($2)}#{$3}"
|
72
|
-
/^data:|^https
|
73
|
-
end.gsub %r{(<v:imagedata[^>]*?src=")([
|
72
|
+
/^data:|^https?:/ =~ $2 ? m : repl
|
73
|
+
end.gsub %r{(<v:imagedata[^>]*?src=")([^"']+)(['"])}m do |m|
|
74
74
|
repl = "#{$1}cid:#{File.basename($2)}#{$3}"
|
75
|
-
/^data:|^https
|
75
|
+
/^data:|^https?:/ =~ $2 ? m : repl
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
79
|
# max width for Word document is 400, max height is 680
|
80
80
|
def image_resize(img, path, maxheight, maxwidth)
|
81
|
-
realsize =
|
82
|
-
s
|
83
|
-
s = realsize if s[0].zero? && s[1].zero?
|
84
|
-
return [nil, nil] if realsize.nil? || realsize[0].nil? || realsize[1].nil?
|
81
|
+
s, realsize = get_image_size(img, path)
|
82
|
+
return s if s[0] == nil && s[1] == nil
|
85
83
|
|
84
|
+
if img.name == "svg" && !img["viewBox"]
|
85
|
+
img["viewBox"] = "0 0 #{s[0]} #{s[1]}"
|
86
|
+
end
|
86
87
|
s[1] = s[0] * realsize[1] / realsize[0] if s[1].zero? && !s[0].zero?
|
87
88
|
s[0] = s[1] * realsize[0] / realsize[1] if s[0].zero? && !s[1].zero?
|
88
89
|
s = [(s[0] * maxheight / s[1]).ceil, maxheight] if s[1] > maxheight
|
@@ -90,6 +91,16 @@ class Html2Doc
|
|
90
91
|
s
|
91
92
|
end
|
92
93
|
|
94
|
+
def get_image_size(img, path)
|
95
|
+
realsize = ImageSize.path(path).size # does not support emf
|
96
|
+
s = [img["width"].to_i, img["height"].to_i]
|
97
|
+
return [s, s] if /\.emf$/.match?(path)
|
98
|
+
|
99
|
+
s = realsize if s[0].zero? && s[1].zero?
|
100
|
+
s = [nil, nil] if realsize.nil? || realsize[0].nil? || realsize[1].nil?
|
101
|
+
[s, realsize]
|
102
|
+
end
|
103
|
+
|
93
104
|
IMAGE_PATH = "//*[local-name() = 'img' or local-name() = 'imagedata']".freeze
|
94
105
|
|
95
106
|
def mkuuid
|
data/lib/html2doc/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html2doc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciimath
|
@@ -273,7 +273,6 @@ extensions: []
|
|
273
273
|
extra_rdoc_files: []
|
274
274
|
files:
|
275
275
|
- ".gitattributes"
|
276
|
-
- ".github/workflows/rake.yml"
|
277
276
|
- ".gitignore"
|
278
277
|
- ".hound.yml"
|
279
278
|
- ".oss-guides.rubocop.yml"
|
@@ -283,11 +282,6 @@ files:
|
|
283
282
|
- Gemfile
|
284
283
|
- LICENSE
|
285
284
|
- README.adoc
|
286
|
-
- Rakefile
|
287
|
-
- bin/console
|
288
|
-
- bin/html2doc
|
289
|
-
- bin/rspec
|
290
|
-
- bin/setup
|
291
285
|
- html2doc.gemspec
|
292
286
|
- lib/html2doc.rb
|
293
287
|
- lib/html2doc/base.rb
|
@@ -298,28 +292,12 @@ files:
|
|
298
292
|
- lib/html2doc/notes.rb
|
299
293
|
- lib/html2doc/version.rb
|
300
294
|
- lib/html2doc/wordstyle.css
|
301
|
-
- spec/19160-6.png
|
302
|
-
- spec/19160-7.gif
|
303
|
-
- spec/19160-8.jpg
|
304
|
-
- spec/examples/header.html
|
305
|
-
- spec/examples/rice.doc
|
306
|
-
- spec/examples/rice.html
|
307
|
-
- spec/examples/rice_images/rice_image1.gif
|
308
|
-
- spec/examples/rice_images/rice_image1.png
|
309
|
-
- spec/examples/rice_images/rice_image2.png
|
310
|
-
- spec/examples/rice_images/rice_image3_1.png
|
311
|
-
- spec/examples/rice_images/rice_image3_2.png
|
312
|
-
- spec/examples/rice_images/rice_image3_3.png
|
313
|
-
- spec/header.html
|
314
|
-
- spec/header_img.html
|
315
|
-
- spec/html2doc_spec.rb
|
316
|
-
- spec/spec_helper.rb
|
317
295
|
homepage: https://github.com/metanorma/html2doc
|
318
296
|
licenses:
|
319
297
|
- CC-BY-SA-3.0
|
320
298
|
- BSD-2-Clause
|
321
299
|
metadata: {}
|
322
|
-
post_install_message:
|
300
|
+
post_install_message:
|
323
301
|
rdoc_options: []
|
324
302
|
require_paths:
|
325
303
|
- lib
|
@@ -327,15 +305,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
327
305
|
requirements:
|
328
306
|
- - ">="
|
329
307
|
- !ruby/object:Gem::Version
|
330
|
-
version: 2.
|
308
|
+
version: 2.7.0
|
331
309
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
332
310
|
requirements:
|
333
311
|
- - ">="
|
334
312
|
- !ruby/object:Gem::Version
|
335
313
|
version: '0'
|
336
314
|
requirements: []
|
337
|
-
rubygems_version: 3.
|
338
|
-
signing_key:
|
315
|
+
rubygems_version: 3.1.6
|
316
|
+
signing_key:
|
339
317
|
specification_version: 4
|
340
318
|
summary: Convert HTML document to Microsoft Word document
|
341
319
|
test_files: []
|
data/.github/workflows/rake.yml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
-
# See https://github.com/metanorma/cimas
|
3
|
-
name: rake
|
4
|
-
|
5
|
-
on:
|
6
|
-
push:
|
7
|
-
branches: [ master, main ]
|
8
|
-
tags: [ v* ]
|
9
|
-
pull_request:
|
10
|
-
|
11
|
-
jobs:
|
12
|
-
rake:
|
13
|
-
uses: metanorma/metanorma-build-scripts/.github/workflows/generic-rake.yml@main
|
14
|
-
secrets:
|
15
|
-
pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
|
data/Rakefile
DELETED
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "html2doc"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start(__FILE__)
|
data/bin/html2doc
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "html2doc"
|
4
|
-
require "optparse"
|
5
|
-
|
6
|
-
options = {}
|
7
|
-
OptionParser.new do |opts|
|
8
|
-
opts.banner = "Usage: bin/html2doc filename [options]"
|
9
|
-
|
10
|
-
opts.on("--stylesheet FILE.CSS", "Use the provided stylesheet") do |v|
|
11
|
-
options[:stylesheet] = v
|
12
|
-
end
|
13
|
-
opts.on("--header HEADER.HTML", "Use the provided stylesheet") do |v|
|
14
|
-
options[:header] = v
|
15
|
-
end
|
16
|
-
end.parse!
|
17
|
-
|
18
|
-
if ARGV.length < 1
|
19
|
-
puts "Usage: bin/html2doc filename [options]"
|
20
|
-
exit
|
21
|
-
end
|
22
|
-
|
23
|
-
Html2Doc.process(
|
24
|
-
filename: ARGV[0].gsub(/\.html?$/, ""),
|
25
|
-
stylesheet: options[:stylesheet],
|
26
|
-
header: options[:header],
|
27
|
-
).process(File.read(ARGV[0], encoding: "utf-8"))
|
data/bin/rspec
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'rspec' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require "pathname"
|
10
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path(
|
11
|
-
"../../Gemfile", Pathname.new(__FILE__).realpath
|
12
|
-
)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("rspec-core", "rspec")
|
18
|
-
|
data/bin/setup
DELETED
data/spec/19160-6.png
DELETED
Binary file
|
data/spec/19160-7.gif
DELETED
Binary file
|
data/spec/19160-8.jpg
DELETED
Binary file
|
data/spec/examples/header.html
DELETED
@@ -1,184 +0,0 @@
|
|
1
|
-
<html xmlns:v="urn:schemas-microsoft-com:vml"
|
2
|
-
xmlns:o="urn:schemas-microsoft-com:office:office"
|
3
|
-
xmlns:w="urn:schemas-microsoft-com:office:word"
|
4
|
-
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
|
5
|
-
xmlns:mv="http://macVmlSchemaUri" xmlns="http://www.w3.org/TR/REC-html40">
|
6
|
-
|
7
|
-
<head>
|
8
|
-
<meta name=Title content="">
|
9
|
-
<meta name=Keywords content="">
|
10
|
-
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
|
11
|
-
<meta name=ProgId content=Word.Document>
|
12
|
-
<meta name=Generator content="Microsoft Word 15">
|
13
|
-
<meta name=Originator content="Microsoft Word 15">
|
14
|
-
<link id=Main-File rel=Main-File href="../rice.html">
|
15
|
-
<!--[if gte mso 9]><xml>
|
16
|
-
<o:shapedefaults v:ext="edit" spidmax="2049"/>
|
17
|
-
</xml><![endif]-->
|
18
|
-
</head>
|
19
|
-
|
20
|
-
<body lang=EN link=blue vlink="#954F72">
|
21
|
-
|
22
|
-
<div style='mso-element:footnote-separator' id=fs>
|
23
|
-
|
24
|
-
<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
|
25
|
-
normal'><span lang=EN-GB><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
|
26
|
-
|
27
|
-
<hr align=left size=1 width="33%">
|
28
|
-
|
29
|
-
<![endif]></span></span></p>
|
30
|
-
|
31
|
-
</div>
|
32
|
-
|
33
|
-
<div style='mso-element:footnote-continuation-separator' id=fcs>
|
34
|
-
|
35
|
-
<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
|
36
|
-
normal'><span lang=EN-GB><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
|
37
|
-
|
38
|
-
<hr align=left size=1>
|
39
|
-
|
40
|
-
<![endif]></span></span></p>
|
41
|
-
|
42
|
-
</div>
|
43
|
-
|
44
|
-
<div style='mso-element:endnote-separator' id=es>
|
45
|
-
|
46
|
-
<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
|
47
|
-
normal'><span lang=EN-GB><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
|
48
|
-
|
49
|
-
<hr align=left size=1 width="33%">
|
50
|
-
|
51
|
-
<![endif]></span></span></p>
|
52
|
-
|
53
|
-
</div>
|
54
|
-
|
55
|
-
<div style='mso-element:endnote-continuation-separator' id=ecs>
|
56
|
-
|
57
|
-
<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
|
58
|
-
normal'><span lang=EN-GB><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
|
59
|
-
|
60
|
-
<hr align=left size=1>
|
61
|
-
|
62
|
-
<![endif]></span></span></p>
|
63
|
-
|
64
|
-
</div>
|
65
|
-
|
66
|
-
<div style='mso-element:header' id=eh1>
|
67
|
-
|
68
|
-
<p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
|
69
|
-
mso-line-height-rule:exactly'><span lang=EN-GB>ISO/IEC CD 17301-1:2016(E)</span></p>
|
70
|
-
|
71
|
-
</div>
|
72
|
-
|
73
|
-
<div style='mso-element:header' id=h1>
|
74
|
-
|
75
|
-
<p class=MsoHeader style='margin-bottom:18.0pt'><span lang=EN-GB
|
76
|
-
style='font-size:10.0pt;mso-bidi-font-size:11.0pt;font-weight:normal'>©
|
77
|
-
ISO/IEC 2016 – All rights reserved</span><span lang=EN-GB
|
78
|
-
style='font-weight:normal'><o:p></o:p></span></p>
|
79
|
-
|
80
|
-
</div>
|
81
|
-
|
82
|
-
<div style='mso-element:footer' id=ef1>
|
83
|
-
|
84
|
-
<p class=MsoFooter style='margin-top:12.0pt;line-height:12.0pt;mso-line-height-rule:
|
85
|
-
exactly'><!--[if supportFields]><b style='mso-bidi-font-weight:normal'><span
|
86
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
87
|
-
style='mso-element:field-begin'></span><span
|
88
|
-
style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>
|
89
|
-
</span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span></b><![endif]--><b
|
90
|
-
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
91
|
-
mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>2</span></span></b><!--[if supportFields]><b
|
92
|
-
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
93
|
-
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
94
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
95
|
-
style='mso-tab-count:1'> </span>©
|
96
|
-
ISO/IEC 2016 – All rights reserved<o:p></o:p></span></p>
|
97
|
-
|
98
|
-
</div>
|
99
|
-
|
100
|
-
<div style='mso-element:header' id=eh2>
|
101
|
-
|
102
|
-
<p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
|
103
|
-
mso-line-height-rule:exactly'><span lang=EN-GB>ISO/IEC CD 17301-1:2016(E)</span></p>
|
104
|
-
|
105
|
-
</div>
|
106
|
-
|
107
|
-
<div style='mso-element:header' id=h2>
|
108
|
-
|
109
|
-
<p class=MsoHeader align=right style='text-align:right;line-height:12.0pt;
|
110
|
-
mso-line-height-rule:exactly'><span lang=EN-GB>ISO/IEC CD 17301-1:2016(E)</span></p>
|
111
|
-
|
112
|
-
</div>
|
113
|
-
|
114
|
-
<div style='mso-element:footer' id=ef2>
|
115
|
-
|
116
|
-
<p class=MsoFooter style='line-height:12.0pt;mso-line-height-rule:exactly'><!--[if supportFields]><span
|
117
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
118
|
-
style='mso-element:field-begin'></span><span
|
119
|
-
style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>
|
120
|
-
</span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
|
121
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
122
|
-
style='mso-no-proof:yes'>ii</span></span><!--[if supportFields]><span
|
123
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
124
|
-
style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
|
125
|
-
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span style='mso-tab-count:
|
126
|
-
1'> </span>©
|
127
|
-
ISO/IEC 2016 – All rights reserved<o:p></o:p></span></p>
|
128
|
-
|
129
|
-
</div>
|
130
|
-
|
131
|
-
<div style='mso-element:footer' id=f2>
|
132
|
-
|
133
|
-
<p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
|
134
|
-
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© ISO/IEC 2016 – All
|
135
|
-
rights reserved<span style='mso-tab-count:1'> </span></span><!--[if supportFields]><span
|
136
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
137
|
-
style='mso-element:field-begin'></span> PAGE<span style='mso-spacerun:yes'>
|
138
|
-
</span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
|
139
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
140
|
-
style='mso-no-proof:yes'>iii</span></span><!--[if supportFields]><span
|
141
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
142
|
-
style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
|
143
|
-
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
|
144
|
-
|
145
|
-
</div>
|
146
|
-
|
147
|
-
<div style='mso-element:footer' id=ef3>
|
148
|
-
|
149
|
-
<p class=MsoFooter style='margin-top:12.0pt;line-height:12.0pt;mso-line-height-rule:
|
150
|
-
exactly'><!--[if supportFields]><b style='mso-bidi-font-weight:normal'><span
|
151
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
152
|
-
style='mso-element:field-begin'></span><span
|
153
|
-
style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>
|
154
|
-
</span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span></b><![endif]--><b
|
155
|
-
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
156
|
-
mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>2</span></span></b><!--[if supportFields]><b
|
157
|
-
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
158
|
-
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
159
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
160
|
-
style='mso-tab-count:1'> </span>©
|
161
|
-
ISO/IEC 2016 – All rights reserved<o:p></o:p></span></p>
|
162
|
-
|
163
|
-
</div>
|
164
|
-
|
165
|
-
<div style='mso-element:footer' id=f3>
|
166
|
-
|
167
|
-
<p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
|
168
|
-
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© ISO/IEC 2016 – All
|
169
|
-
rights reserved<span style='mso-tab-count:1'> </span></span><!--[if supportFields]><b
|
170
|
-
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
171
|
-
mso-bidi-font-size:11.0pt'><span style='mso-element:field-begin'></span>
|
172
|
-
PAGE<span style='mso-spacerun:yes'> </span>\* MERGEFORMAT <span
|
173
|
-
style='mso-element:field-separator'></span></span></b><![endif]--><b
|
174
|
-
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
175
|
-
mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>3</span></span></b><!--[if supportFields]><b
|
176
|
-
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
177
|
-
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
178
|
-
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
|
179
|
-
|
180
|
-
</div>
|
181
|
-
|
182
|
-
</body>
|
183
|
-
|
184
|
-
</html>
|