paperback 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/paperback +14 -7
- data/lib/paperback/cli.rb +3 -2
- data/lib/paperback/document.rb +9 -4
- data/lib/paperback/preparer.rb +3 -1
- data/lib/paperback/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: 2e11bb71dec04963fa615cc0b522af8ab818a671
|
4
|
+
data.tar.gz: 7d5c5b5a1e45bf30b62303415e5697681867f57d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03c36ef11c1a27ff57254d004f1ddb697920f726b7e29e72845d4f72e62f259bc987889d6db65a00af662cc2aaefc0916feadc69c4d44195431c7679020d0bd2
|
7
|
+
data.tar.gz: 3d7c478f33e894a6303d0fd1546a8e4e21c8f4df5509900081b04ca6a229fa4858f8357e220b26101727724bb960df2aa19b06c5278e3feae357ef4e34889075
|
data/bin/paperback
CHANGED
@@ -31,11 +31,11 @@ For example:
|
|
31
31
|
Options:
|
32
32
|
EOM
|
33
33
|
|
34
|
-
opts.on('-h', '--help', 'Display this message'
|
34
|
+
opts.on('-h', '--help', 'Display this message') do
|
35
35
|
STDERR.puts opts, ''
|
36
36
|
exit 0
|
37
37
|
end
|
38
|
-
opts.on('--version', 'Print version number'
|
38
|
+
opts.on('--version', 'Print version number') do
|
39
39
|
puts 'paperback ' + Paperback::VERSION
|
40
40
|
exit 0
|
41
41
|
end
|
@@ -45,17 +45,24 @@ Options:
|
|
45
45
|
|
46
46
|
#
|
47
47
|
|
48
|
+
opts.on('-c', '--comment TEXT', 'Add TEXT comment to output') do |val|
|
49
|
+
options[:comment] = val
|
50
|
+
end
|
51
|
+
|
48
52
|
opts.on('--no-encrypt', 'Skip encryption of input') do |val|
|
49
53
|
options[:encrypt] = val
|
50
54
|
end
|
51
55
|
|
52
|
-
opts.on('-
|
53
|
-
|
56
|
+
opts.on('--passphrase-out FILE', 'Write generated passphrase to FILE',
|
57
|
+
' ') do |val|
|
58
|
+
options[:passphrase_file] = val
|
54
59
|
end
|
55
60
|
|
56
|
-
|
57
|
-
|
58
|
-
|
61
|
+
#
|
62
|
+
|
63
|
+
opts.on('--sixword-font-size SIZE', 'Size of sixword text') do |val|
|
64
|
+
options[:extra_draw_opts] ||= {}
|
65
|
+
options[:extra_draw_opts][:sixword_font_size] = Float(val)
|
59
66
|
end
|
60
67
|
end
|
61
68
|
|
data/lib/paperback/cli.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
module Paperback
|
2
2
|
module CLI
|
3
3
|
def self.create_backup(input:, output:, encrypt: true, qr_base64: true,
|
4
|
-
qr_level: :l, comment: nil, passphrase_file: nil
|
4
|
+
qr_level: :l, comment: nil, passphrase_file: nil,
|
5
|
+
extra_draw_opts: {})
|
5
6
|
prep = Paperback::Preparer.new(filename: input, encrypt: encrypt,
|
6
7
|
qr_base64: qr_base64, qr_level: qr_level,
|
7
8
|
passphrase_file: passphrase_file,
|
8
9
|
comment: comment)
|
9
|
-
prep.render(output_filename: output)
|
10
|
+
prep.render(output_filename: output, extra_draw_opts: extra_draw_opts)
|
10
11
|
end
|
11
12
|
end
|
12
13
|
end
|
data/lib/paperback/document.rb
CHANGED
@@ -27,7 +27,8 @@ module Paperback; class Document
|
|
27
27
|
|
28
28
|
# High level method to draw the paperback content on the pdf document
|
29
29
|
def draw_paperback(qr_code:, sixword_lines:, sixword_bytes:,
|
30
|
-
labels:, passphrase_sha: nil, passphrase_len: nil
|
30
|
+
labels:, passphrase_sha: nil, passphrase_len: nil,
|
31
|
+
sixword_font_size: nil)
|
31
32
|
unless qr_code.is_a?(RQRCode::QRCode)
|
32
33
|
raise ArgumentError.new('qr_code must be RQRCode::QRCode')
|
33
34
|
end
|
@@ -51,7 +52,8 @@ module Paperback; class Document
|
|
51
52
|
|
52
53
|
pdf.start_new_page
|
53
54
|
|
54
|
-
draw_sixword(lines: sixword_lines, sixword_bytes: sixword_bytes
|
55
|
+
draw_sixword(lines: sixword_lines, sixword_bytes: sixword_bytes,
|
56
|
+
font_size: sixword_font_size)
|
55
57
|
|
56
58
|
pdf.number_pages('<page> of <total>', align: :right,
|
57
59
|
at: [pdf.bounds.right - 100, -2])
|
@@ -114,7 +116,10 @@ module Paperback; class Document
|
|
114
116
|
# @param [Integer] columns The number of text columns on the page
|
115
117
|
# @param [Integer] hunks_per_row The number of 6-word sentences per line
|
116
118
|
# @param [Integer] sixword_bytes Bytesize of the sixword encoded data
|
117
|
-
def draw_sixword(lines:, sixword_bytes:, columns: 3, hunks_per_row: 1
|
119
|
+
def draw_sixword(lines:, sixword_bytes:, columns: 3, hunks_per_row: 1,
|
120
|
+
font_size: nil)
|
121
|
+
font_size ||= 11
|
122
|
+
|
118
123
|
debug_draw_axes
|
119
124
|
|
120
125
|
numbered = lines.each_slice(hunks_per_row).each_with_index.map { |row, i|
|
@@ -134,7 +139,7 @@ module Paperback; class Document
|
|
134
139
|
|
135
140
|
pdf.column_box([0, pdf.cursor], columns: columns, width: pdf.bounds.width) do
|
136
141
|
pdf.font('Times-Roman') do
|
137
|
-
pdf.font_size(
|
142
|
+
pdf.font_size(font_size) do
|
138
143
|
pdf.text(numbered.join("\n"))
|
139
144
|
end
|
140
145
|
end
|
data/lib/paperback/preparer.rb
CHANGED
@@ -63,7 +63,7 @@ module Paperback
|
|
63
63
|
@log ||= Paperback.class_log(self)
|
64
64
|
end
|
65
65
|
|
66
|
-
def render(output_filename:)
|
66
|
+
def render(output_filename:, extra_draw_opts: {})
|
67
67
|
log.debug('Preparer#render')
|
68
68
|
|
69
69
|
opts = {
|
@@ -85,6 +85,8 @@ module Paperback
|
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
+
opts.merge!(extra_draw_opts)
|
89
|
+
|
88
90
|
@document.render(output_file: output_filename, draw_opts: opts)
|
89
91
|
|
90
92
|
log.info('Render complete')
|
data/lib/paperback/version.rb
CHANGED