petit-felix 0.1.3 → 0.1.5
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/felix/config.rb +19 -15
- data/lib/felix/generator.rb +6 -3
- data/lib/felix/metadata.rb +14 -3
- data/lib/felix/task_manager.rb +15 -5
- data/lib/petit-felix.rb +1 -1
- data/lib/task/basic_pdf_classic_task.rb +191 -0
- data/lib/task/default_task.rb +35 -3
- data/lib/task/pdf_single_task.rb +69 -0
- data/lib/task/template_pdf_task.rb +50 -0
- data/lib/version.rb +1 -1
- data/lib/worker/{basic_pdf_writer.rb → basic_pdf_writer_classic.rb} +41 -66
- data/lib/worker/pdf_writer/bounding_box.rb +135 -0
- data/lib/worker/pdf_writer/column_box.rb +38 -0
- data/lib/worker/pdf_writer.rb +138 -0
- data/lib/worker/template_pdf_calls.rb +1072 -0
- data/lib/worker/template_pdf_writer.rb +502 -0
- data/templates/zine-single.json +774 -0
- metadata +29 -6
- data/lib/task/basic_pdf_task.rb +0 -133
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6dd1314254a58bf139622785e904f6461480b148d809e2eb0e777c319dbf391f
|
4
|
+
data.tar.gz: d70547db0dabee7c9af618cd8c7f79bf5086ad3a074e3b2a5d0ffa3194296abf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49ee539a073acc0668a1c414190e36a05b3e9c8d628c01b78c2c437e1866e2e83c36c36a1f13aeb56fad3877388f98bdc287fcdeee6d3f469abbba1b60b9e121
|
7
|
+
data.tar.gz: a3f8e8dda4dd750ffe7d1849ae4d181ae76799c161cc14bb82c3e1f46ead121a59c078b7b3a172ae40e4dc03f3b75bc2d51824fe4818a8f066d08d12c9a80815
|
data/lib/felix/config.rb
CHANGED
@@ -14,7 +14,7 @@ module PetitFelix
|
|
14
14
|
"image_dir" => "./assets/images",
|
15
15
|
"input_files" => "./md/*",
|
16
16
|
"output_dir" => "./output",
|
17
|
-
"
|
17
|
+
"task" => "pdf-single",
|
18
18
|
}
|
19
19
|
|
20
20
|
## Hash for custom command line argument calls
|
@@ -35,6 +35,8 @@ module PetitFelix
|
|
35
35
|
"page_layout" => -> (command, args, index, cl_args) { cl_add_config(command, args, index, cl_args) },
|
36
36
|
"input_files" => -> (command, args, index, cl_args) { cl_add_config(command, args, index, cl_args) },
|
37
37
|
"image_dir" => -> (command, args, index, cl_args) { cl_add_config(command, args, index, cl_args) },
|
38
|
+
"task" => -> (command, args, index, cl_args) { cl_add_config(command, args, index, cl_args) },
|
39
|
+
"template" => -> (command, args, index, cl_args) { cl_add_config(command, args, index, cl_args) },
|
38
40
|
}
|
39
41
|
|
40
42
|
### Command Line Arguments
|
@@ -52,6 +54,7 @@ module PetitFelix
|
|
52
54
|
## then finally any arguments defined in the metadata.
|
53
55
|
|
54
56
|
def load_config(wm, passed_args, args)
|
57
|
+
|
55
58
|
@processed_arguments = []
|
56
59
|
|
57
60
|
# Felix metadata handler
|
@@ -66,7 +69,7 @@ module PetitFelix
|
|
66
69
|
|
67
70
|
if File.file?("./default.cfg")
|
68
71
|
|
69
|
-
default_config = metadata.get_metadata(File.read("./default.cfg")
|
72
|
+
default_config = metadata.get_metadata(File.read("./default.cfg"))
|
70
73
|
end
|
71
74
|
|
72
75
|
# Loads command line arguments
|
@@ -76,20 +79,20 @@ module PetitFelix
|
|
76
79
|
worker = ""
|
77
80
|
worker_options = nil
|
78
81
|
|
79
|
-
if default_options.key?("
|
80
|
-
worker = default_options["
|
82
|
+
if default_options.key?("task")
|
83
|
+
worker = default_options["task"]
|
81
84
|
end
|
82
85
|
|
83
|
-
if default_config.key?("
|
84
|
-
worker = default_config["
|
86
|
+
if default_config.key?("task")
|
87
|
+
worker = default_config["task"]
|
85
88
|
end
|
86
89
|
|
87
|
-
if cl_args.key?("
|
88
|
-
worker = cl_args["
|
90
|
+
if cl_args.key?("task")
|
91
|
+
worker = cl_args["task"]
|
89
92
|
end
|
90
93
|
|
91
|
-
if passed_args.key?("
|
92
|
-
worker = passed_args["
|
94
|
+
if passed_args.key?("task")
|
95
|
+
worker = passed_args["task"]
|
93
96
|
end
|
94
97
|
|
95
98
|
if worker != ""
|
@@ -100,11 +103,6 @@ module PetitFelix
|
|
100
103
|
# First, default options
|
101
104
|
options = default_options
|
102
105
|
|
103
|
-
# Then loading default config file
|
104
|
-
default_config.keys.each do |key|
|
105
|
-
options[key] = default_config[key]
|
106
|
-
end
|
107
|
-
|
108
106
|
# Then loading default worker args
|
109
107
|
if !worker_options.nil?
|
110
108
|
worker_options.keys.each do |key|
|
@@ -112,6 +110,11 @@ module PetitFelix
|
|
112
110
|
end
|
113
111
|
end
|
114
112
|
|
113
|
+
# Then loading default config file
|
114
|
+
default_config.keys.each do |key|
|
115
|
+
options[key] = default_config[key]
|
116
|
+
end
|
117
|
+
|
115
118
|
# Then loading CLI arguments
|
116
119
|
cl_args.keys.each do |key|
|
117
120
|
options[key] = cl_args[key]
|
@@ -132,6 +135,7 @@ module PetitFelix
|
|
132
135
|
index = 0
|
133
136
|
|
134
137
|
args.each do |com|
|
138
|
+
|
135
139
|
command = com.downcase
|
136
140
|
|
137
141
|
if command.start_with?("--")
|
data/lib/felix/generator.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require "task/basic_pdf_task"
|
2
1
|
require "felix/task_manager"
|
3
2
|
|
4
3
|
module PetitFelix
|
@@ -9,10 +8,14 @@ module PetitFelix
|
|
9
8
|
|
10
9
|
def render_files(wm, options)
|
11
10
|
|
12
|
-
task = wm.get_task options["
|
11
|
+
task = wm.get_task options["task"]
|
13
12
|
|
13
|
+
default_options = wm.get_task_options options["task"]
|
14
|
+
|
15
|
+
default_options = default_options.merge(options)
|
16
|
+
|
14
17
|
if !task.nil?
|
15
|
-
task.render_files
|
18
|
+
task.render_files default_options
|
16
19
|
end
|
17
20
|
|
18
21
|
end
|
data/lib/felix/metadata.rb
CHANGED
@@ -20,14 +20,15 @@ module PetitFelix
|
|
20
20
|
array = input.lines
|
21
21
|
|
22
22
|
metadata = {}
|
23
|
-
|
23
|
+
|
24
24
|
array.each do |set|
|
25
25
|
if set.count(":") >= 1
|
26
|
-
data = set.split(":")
|
26
|
+
data = set.split(":", 2)
|
27
27
|
index = data[0].strip.downcase
|
28
|
-
metadata[index] = data[1].strip
|
28
|
+
metadata[index] = data[1].strip.gsub("\\\"", "\"")
|
29
29
|
end
|
30
30
|
end
|
31
|
+
|
31
32
|
metadata
|
32
33
|
end
|
33
34
|
|
@@ -40,5 +41,15 @@ module PetitFelix
|
|
40
41
|
input
|
41
42
|
end
|
42
43
|
|
44
|
+
## Transforms string into JSON parsed object
|
45
|
+
def parse_property string, base="${x}"
|
46
|
+
begin
|
47
|
+
return JSON.parse(base.sub("${x}", string), symbolize_names: true)
|
48
|
+
rescue
|
49
|
+
return parse_property
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
43
54
|
end
|
44
55
|
end
|
data/lib/felix/task_manager.rb
CHANGED
@@ -4,13 +4,22 @@ require "felix/error"
|
|
4
4
|
module PetitFelix
|
5
5
|
class TaskManager
|
6
6
|
|
7
|
+
def load_task filename
|
8
|
+
load filename
|
9
|
+
end
|
10
|
+
|
11
|
+
|
7
12
|
# Gets the list of tasks loaded
|
8
13
|
def initialize
|
9
14
|
@error_printer = PetitFelix::Error.new
|
10
15
|
@task_list = {}
|
16
|
+
|
17
|
+
load_task "task/template_pdf_task.rb"
|
18
|
+
load_task "task/pdf_single_task.rb"
|
19
|
+
load_task "task/basic_pdf_classic_task.rb"
|
11
20
|
|
12
21
|
task_list = PetitFelix::Task.constants.select {|c| PetitFelix::Task.const_get(c).is_a? Class}
|
13
|
-
|
22
|
+
|
14
23
|
task_list.delete(:DefaultTask)
|
15
24
|
|
16
25
|
task_list.each do |task|
|
@@ -18,9 +27,10 @@ module PetitFelix
|
|
18
27
|
|
19
28
|
task_obj = {}
|
20
29
|
task_obj["id"] = task
|
21
|
-
task_obj["options"] = task_instance::DEFAULT_OPTIONS
|
22
30
|
|
23
|
-
|
31
|
+
task_obj["options"] = task_instance.default_options
|
32
|
+
|
33
|
+
name = task_instance.name
|
24
34
|
|
25
35
|
@task_list[name] = task_obj
|
26
36
|
end
|
@@ -53,7 +63,7 @@ module PetitFelix
|
|
53
63
|
name = "[UNDEFINED]"
|
54
64
|
end
|
55
65
|
|
56
|
-
err_no_task_found name, additional_text: "Unable to get options for
|
66
|
+
err_no_task_found name, additional_text: "Unable to get options for Task " + name + ":\n"
|
57
67
|
end
|
58
68
|
|
59
69
|
return nil
|
@@ -61,7 +71,7 @@ module PetitFelix
|
|
61
71
|
|
62
72
|
# No task found error
|
63
73
|
def err_no_task_found task, additional_text: ""
|
64
|
-
text = "
|
74
|
+
text = "Task " + task.downcase + " not found. Make sure the variable \"task\" is set correctly in your configuration settings. Available Tasks: "
|
65
75
|
|
66
76
|
@task_list.keys.each do |key|
|
67
77
|
text += "\n " + key
|
data/lib/petit-felix.rb
CHANGED
@@ -10,7 +10,7 @@ module PetitFelix
|
|
10
10
|
# cl_args - command line arguments passed from CLI
|
11
11
|
# options - hash passed by developer containing default rendering options
|
12
12
|
def initialize(cl_args: [], options: {})
|
13
|
-
|
13
|
+
|
14
14
|
# Creates a new worker manager, which has all the worker stuff
|
15
15
|
wm = PetitFelix::TaskManager.new
|
16
16
|
|
@@ -0,0 +1,191 @@
|
|
1
|
+
require "task/default_task"
|
2
|
+
require "worker/basic_pdf_writer_classic"
|
3
|
+
|
4
|
+
module PetitFelix
|
5
|
+
|
6
|
+
module Task
|
7
|
+
|
8
|
+
class BasicPDFTask < PetitFelix::Task::DefaultTask
|
9
|
+
|
10
|
+
def self.name
|
11
|
+
"basic-pdf-classic"
|
12
|
+
end
|
13
|
+
|
14
|
+
## Default options of the application
|
15
|
+
def self.default_options
|
16
|
+
return {
|
17
|
+
"columns" => 1,
|
18
|
+
"default_font_size" => 12,
|
19
|
+
"header1_size" => 32,
|
20
|
+
"header2_size" => 28,
|
21
|
+
"header3_size" => 20,
|
22
|
+
"header4_size" => 18,
|
23
|
+
"header5_size" => 16,
|
24
|
+
"header6_size" => 14,
|
25
|
+
"quote_size" => 14,
|
26
|
+
"margin" => 40,
|
27
|
+
"font_normal" => "./assets/font/Unageo-Regular.ttf",
|
28
|
+
"font_italic"=> "./assets/font/Unageo-Regular-Italic.ttf",
|
29
|
+
"font_bold"=> "./assets/font/Unageo-ExtraBold.ttf",
|
30
|
+
"font_bold_italic" => "./assets/font/Unageo-ExtraBold-Italic.ttf",
|
31
|
+
"paginator_start_count" => 1,
|
32
|
+
"paginator_start" => 1,
|
33
|
+
"paginator" => true,
|
34
|
+
"paginator_alternate" => false,
|
35
|
+
"back_text" => "",
|
36
|
+
"back_text_margin" => 0,
|
37
|
+
"back_text_size" => 14,
|
38
|
+
"front_title_size"=> 32,
|
39
|
+
"front_author_size" => 18,
|
40
|
+
"front_date_size" => 14,
|
41
|
+
"back_publisher" => "",
|
42
|
+
"back_publisher_size" => 14,
|
43
|
+
"front_publisher" => "",
|
44
|
+
"front_publisher_size" => 14,
|
45
|
+
"paginator_size" => 12,
|
46
|
+
"back_author" => "",
|
47
|
+
"back_author_size" => 16,
|
48
|
+
}
|
49
|
+
end
|
50
|
+
|
51
|
+
def render_zine
|
52
|
+
|
53
|
+
page = File.read(options["filename"])
|
54
|
+
|
55
|
+
# splits the page into parts for metadata and content
|
56
|
+
|
57
|
+
# Felix metadata handler
|
58
|
+
metadata_helper = PetitFelix::Metadata.new
|
59
|
+
|
60
|
+
page_data = metadata_helper.split page
|
61
|
+
|
62
|
+
@metadata = metadata_helper.get_metadata page_data[0]
|
63
|
+
|
64
|
+
@content = page_data[1]
|
65
|
+
|
66
|
+
prepare_options options
|
67
|
+
|
68
|
+
# Only continue if metadata has a title
|
69
|
+
|
70
|
+
if @metadata.key?("title")
|
71
|
+
|
72
|
+
# Parameters
|
73
|
+
|
74
|
+
page_layout = :portrait
|
75
|
+
print_scaling = :none
|
76
|
+
|
77
|
+
if @metaoptions.key?("page_layout")
|
78
|
+
page_layout = @metaoptions["page_layout"]
|
79
|
+
|
80
|
+
if page_layout.is_a? String
|
81
|
+
if page_layout.include?("portrait")
|
82
|
+
page_layout = :portrait
|
83
|
+
else
|
84
|
+
if page_layout.include?("landscape")
|
85
|
+
page_layout = :landscape
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
# Generates PDF
|
92
|
+
|
93
|
+
pdf = PetitFelix::Worker::BasicPDFWriter.new(
|
94
|
+
page_layout: page_layout,
|
95
|
+
print_scaling: print_scaling)
|
96
|
+
|
97
|
+
|
98
|
+
pdf.set_options @metaoptions
|
99
|
+
|
100
|
+
# Adds extra fonts
|
101
|
+
|
102
|
+
pdf.initialize_font
|
103
|
+
|
104
|
+
# Title page generation
|
105
|
+
|
106
|
+
pdf.title_page
|
107
|
+
|
108
|
+
# Does the main content
|
109
|
+
pdf.main_block @content
|
110
|
+
|
111
|
+
# Does page numbering
|
112
|
+
pdf.page_numbering
|
113
|
+
|
114
|
+
pdf.go_to_page pdf.page_count
|
115
|
+
|
116
|
+
# Back page generation
|
117
|
+
pdf.back_page
|
118
|
+
|
119
|
+
# Outputs to file
|
120
|
+
pdf.output
|
121
|
+
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def prepare_options options
|
126
|
+
|
127
|
+
# stores options + metadata. metadata overrides options.
|
128
|
+
@metaoptions = {}
|
129
|
+
|
130
|
+
options.keys.each do |key|
|
131
|
+
@metaoptions[key] = options[key]
|
132
|
+
end
|
133
|
+
|
134
|
+
@metadata.keys.each do |key|
|
135
|
+
@metaoptions[key] = @metadata[key]
|
136
|
+
end
|
137
|
+
|
138
|
+
# Loads proper values from strings for certain params
|
139
|
+
page_layout = :portrait
|
140
|
+
print_scaling = :none
|
141
|
+
|
142
|
+
if @metaoptions.key?("page_layout")
|
143
|
+
page_layout = @metaoptions["page_layout"]
|
144
|
+
|
145
|
+
if page_layout.is_a? String
|
146
|
+
if page_layout.include?("portrait")
|
147
|
+
@metaoptions["page_layout"] = :portrait
|
148
|
+
else
|
149
|
+
if page_layout.include?("landscape")
|
150
|
+
@metaoptions["page_layout"] = :landscape
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
|
158
|
+
def render_files options
|
159
|
+
if options.key?("input_files")
|
160
|
+
site_list = options["input_files"].split(",")
|
161
|
+
end
|
162
|
+
|
163
|
+
site_list.each do |page|
|
164
|
+
|
165
|
+
file_list = Dir[page.strip].select { |path| File.file?(path) }
|
166
|
+
|
167
|
+
if !file_list.empty?
|
168
|
+
|
169
|
+
file_list.each do |file|
|
170
|
+
options["filename"] = file.strip
|
171
|
+
|
172
|
+
if File.file?(options["filename"])
|
173
|
+
render_zine
|
174
|
+
end
|
175
|
+
|
176
|
+
end
|
177
|
+
|
178
|
+
else
|
179
|
+
if File.file?(page)
|
180
|
+
render_zine(page)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
end
|
186
|
+
|
187
|
+
end
|
188
|
+
|
189
|
+
end
|
190
|
+
|
191
|
+
end
|
data/lib/task/default_task.rb
CHANGED
@@ -1,18 +1,49 @@
|
|
1
|
+
require "felix/metadata"
|
2
|
+
|
1
3
|
module PetitFelix
|
2
4
|
|
3
5
|
module Task
|
4
6
|
|
5
7
|
class DefaultTask
|
6
8
|
|
7
|
-
def
|
9
|
+
def self.name
|
10
|
+
""
|
11
|
+
end
|
12
|
+
|
13
|
+
## Default options of the application
|
14
|
+
def self.default_options
|
15
|
+
return {}
|
16
|
+
end
|
17
|
+
|
18
|
+
def prepare_options options
|
19
|
+
|
20
|
+
# stores options + metadata. metadata overrides options.
|
21
|
+
@metaoptions = {}
|
22
|
+
|
23
|
+
options.keys.each do |key|
|
24
|
+
@metaoptions[key] = options[key]
|
25
|
+
end
|
26
|
+
|
27
|
+
# Loads proper values from strings for certain params
|
28
|
+
page_layout = :portrait
|
29
|
+
print_scaling = :none
|
30
|
+
|
31
|
+
if @metaoptions.key?("page_layout")
|
32
|
+
page_layout = @metaoptions["page_layout"].to_sym
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
def render_zine
|
8
38
|
print "render_zine() not implemented\n"
|
9
39
|
end
|
10
40
|
|
11
41
|
def render_files options
|
42
|
+
|
12
43
|
if options.key?("input_files")
|
13
44
|
site_list = options["input_files"].split(",")
|
14
45
|
end
|
15
|
-
|
46
|
+
|
16
47
|
site_list.each do |page|
|
17
48
|
|
18
49
|
file_list = Dir[page.strip].select { |path| File.file?(path) }
|
@@ -23,7 +54,8 @@ module PetitFelix
|
|
23
54
|
options["filename"] = file.strip
|
24
55
|
|
25
56
|
if File.file?(options["filename"])
|
26
|
-
|
57
|
+
prepare_options options
|
58
|
+
render_zine
|
27
59
|
end
|
28
60
|
|
29
61
|
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require "task/template_pdf_task"
|
2
|
+
require "worker/template_pdf_writer"
|
3
|
+
|
4
|
+
module PetitFelix
|
5
|
+
|
6
|
+
module Task
|
7
|
+
|
8
|
+
class SinglePDFTask < PetitFelix::Task::DefaultTask
|
9
|
+
|
10
|
+
def self.name
|
11
|
+
"pdf-single"
|
12
|
+
end
|
13
|
+
|
14
|
+
## Default options of the application
|
15
|
+
def self.default_options
|
16
|
+
return {
|
17
|
+
"pdf" => "false"
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
def render_zine
|
22
|
+
|
23
|
+
# Only continue if metadata has a title
|
24
|
+
# Generates PDF
|
25
|
+
|
26
|
+
page = File.read(@metaoptions["filename"])
|
27
|
+
|
28
|
+
# splits the page into parts for metadata and content
|
29
|
+
|
30
|
+
# Felix metadata handler
|
31
|
+
metadata_helper = PetitFelix::Metadata.new
|
32
|
+
|
33
|
+
page_data = metadata_helper.split page
|
34
|
+
|
35
|
+
metadata = @metaoptions.merge(metadata_helper.get_metadata(page_data[0]))
|
36
|
+
|
37
|
+
# Always forces you to use this template
|
38
|
+
@metaoptions["template"] = File.dirname(__FILE__) + "/../../templates/zine-single.json"
|
39
|
+
|
40
|
+
if metadata.key?("pdf") && metadata["pdf"] == "true"
|
41
|
+
|
42
|
+
pdf = PetitFelix::Worker::TemplatePDFWriter.new(
|
43
|
+
page_layout: @metaoptions["page_layout"],
|
44
|
+
print_scaling: @metaoptions["print_scaling"])
|
45
|
+
|
46
|
+
@metaoptions["output_file"] = File.basename(File.basename(@metaoptions["filename"], ".md"), ".markdown") + ".pdf"
|
47
|
+
|
48
|
+
pdf.set_options @metaoptions
|
49
|
+
|
50
|
+
pdf.init_values @metaoptions, pdf
|
51
|
+
|
52
|
+
pdf.read_template
|
53
|
+
|
54
|
+
# Adds extra fonts
|
55
|
+
#pdf.initialize_font
|
56
|
+
|
57
|
+
# Outputs to file
|
58
|
+
pdf.output
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require "task/default_task"
|
2
|
+
require "worker/template_pdf_writer"
|
3
|
+
|
4
|
+
module PetitFelix
|
5
|
+
|
6
|
+
module Task
|
7
|
+
|
8
|
+
class TemplatePDFTask < PetitFelix::Task::DefaultTask
|
9
|
+
|
10
|
+
def self.name
|
11
|
+
"template-pdf"
|
12
|
+
end
|
13
|
+
|
14
|
+
## Default options of the application
|
15
|
+
def self.default_options
|
16
|
+
return {
|
17
|
+
"template" => "./templates/test.json",
|
18
|
+
"output_file" => "./output/test.pdf"
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
def render_zine
|
23
|
+
|
24
|
+
# Only continue if metadata has a title
|
25
|
+
# Generates PDF
|
26
|
+
|
27
|
+
pdf = PetitFelix::Worker::TemplatePDFWriter.new(
|
28
|
+
page_layout: @metaoptions["page_layout"],
|
29
|
+
print_scaling: @metaoptions["print_scaling"])
|
30
|
+
|
31
|
+
pdf.set_options @metaoptions
|
32
|
+
|
33
|
+
pdf.init_values @metaoptions, pdf
|
34
|
+
|
35
|
+
pdf.read_template
|
36
|
+
|
37
|
+
# Adds extra fonts
|
38
|
+
#pdf.initialize_font
|
39
|
+
|
40
|
+
# Outputs to file
|
41
|
+
pdf.output
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|