obf 0.9.8.34 → 0.9.8.35
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/obf/pdf.rb +29 -24
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3274b731d612ffd8a4ce7b39c4f5c24693c15d62ef2e22126df98ce428e8d0ae
|
4
|
+
data.tar.gz: e7956b737623c1f5b8471c2fc3465478aebb6dd60b157bae69c7ffa9935da140
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc988d4f31a72cf4e64db2256e6610dfbfbf397937f65822689cb89751a80475de8ff4e93cface38edab88821f077a79c5f9352de5c7a233f6d5e4e65a62bd59
|
7
|
+
data.tar.gz: d93c9e458967e25de8b6d79feeffac73cef7f4ef674f57b15432aa3f66312017aa932c921c2afeb770f352557f382ef16409b6f871d2feae021232ada4d650bd
|
data/lib/obf/pdf.rb
CHANGED
@@ -31,6 +31,32 @@ module OBF::PDF
|
|
31
31
|
build_pdf(obj, dest_path, zipper, opts)
|
32
32
|
return dest_path
|
33
33
|
end
|
34
|
+
|
35
|
+
def self.load_fonts(pdf, opts)
|
36
|
+
# remember: https://www.alphabet-type.com/tools/charset-checker/
|
37
|
+
pdf.font_families.update('THFahKwangBold' => {
|
38
|
+
normal: File.expand_path('../../THFahKwangBold.ttf', __FILE__)
|
39
|
+
})
|
40
|
+
pdf.font_families.update('MiedingerBook' => {
|
41
|
+
normal: File.expand_path('../../MiedingerBook.ttf', __FILE__)
|
42
|
+
})
|
43
|
+
pdf.font_families.update('Arial' => {
|
44
|
+
normal: File.expand_path('../../Arial.ttf', __FILE__)
|
45
|
+
})
|
46
|
+
pdf.font_families.update('TimesNewRoman' => {
|
47
|
+
normal: File.expand_path('../../TimesNewRoman.ttf', __FILE__)
|
48
|
+
})
|
49
|
+
default_font = 'TimesNewRoman'
|
50
|
+
if opts['font'] && !opts['font'].match(/TimesNewRoman/) && File.exists?(opts['font'])
|
51
|
+
pdf.font_families.update('DocDefault' => {
|
52
|
+
normal: opts['font']
|
53
|
+
})
|
54
|
+
default_font = 'DocDefault'
|
55
|
+
end
|
56
|
+
pdf.fallback_fonts = ['TimesNewRoman', 'THFahKwangBold', 'MiedingerBook', 'Helvetica']
|
57
|
+
pdf.font(default_font)
|
58
|
+
default_font
|
59
|
+
end
|
34
60
|
|
35
61
|
def self.build_pdf(obj, dest_path, zipper, opts={})
|
36
62
|
OBF::Utils.as_progress_percent(0, 1.0) do
|
@@ -43,32 +69,11 @@ module OBF::PDF
|
|
43
69
|
}
|
44
70
|
}
|
45
71
|
pdf = Prawn::Document.new(doc_opts)
|
46
|
-
|
47
|
-
pdf.font_families.update('THFahKwangBold' => {
|
48
|
-
normal: File.expand_path('../../THFahKwangBold.ttf', __FILE__)
|
49
|
-
})
|
50
|
-
pdf.font_families.update('MiedingerBook' => {
|
51
|
-
normal: File.expand_path('../../MiedingerBook.ttf', __FILE__)
|
52
|
-
})
|
53
|
-
pdf.font_families.update('Arial' => {
|
54
|
-
normal: File.expand_path('../../Arial.ttf', __FILE__)
|
55
|
-
})
|
56
|
-
pdf.font_families.update('TimesNewRoman' => {
|
57
|
-
normal: File.expand_path('../../TimesNewRoman.ttf', __FILE__)
|
58
|
-
})
|
59
|
-
default_font = 'TimesNewRoman'
|
60
|
-
if opts['font'] && !opts['font'].match(/TimesNewRoman/) && File.exists?(opts['font'])
|
61
|
-
pdf.font_families.update('DocDefault' => {
|
62
|
-
normal: opts['font']
|
63
|
-
})
|
64
|
-
default_font = 'DocDefault'
|
65
|
-
end
|
66
|
-
pdf.fallback_fonts = ['TimesNewRoman', 'THFahKwangBold', 'MiedingerBook', 'Helvetica']
|
67
|
-
pdf.font(default_font)
|
72
|
+
default_font = load_fonts(pdf, opts)
|
68
73
|
|
69
74
|
multi_render_paths = []
|
70
75
|
if obj['boards']
|
71
|
-
multi_render = obj['boards'].length > 20
|
76
|
+
multi_render = obj['boards'].length > 20 && `which gs`.length > 0
|
72
77
|
obj['backlinks'] = {}
|
73
78
|
if obj['pages']
|
74
79
|
obj['boards'].each do |board|
|
@@ -89,10 +94,10 @@ module OBF::PDF
|
|
89
94
|
OBF::Utils.as_progress_percent(pre, post) do
|
90
95
|
# if more than 20 pages, build each page individually
|
91
96
|
# and combine them afterwards
|
92
|
-
|
93
97
|
if multi_render
|
94
98
|
path = OBF::Utils.temp_path("stash-#{idx}.pdf")
|
95
99
|
pdf = Prawn::Document.new(doc_opts)
|
100
|
+
load_fonts(pdf, opts)
|
96
101
|
else
|
97
102
|
pdf.start_new_page unless idx == 0
|
98
103
|
end
|