pdfmult 1.1.0 → 1.2.0
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 +2 -2
- data/Rakefile +1 -1
- data/lib/pdfmult.rb +28 -20
- data/man/pdfmult.1 +7 -4
- data/pdfmult.gemspec +6 -5
- data/test/test_optionparser.rb +10 -4
- metadata +4 -4
data/README.md
CHANGED
@@ -23,13 +23,13 @@ Use the program as shown in the examples below.
|
|
23
23
|
|
24
24
|
writes 2 copies of `sample.pdf` to `sample_2.pdf`
|
25
25
|
|
26
|
-
<img src="/stomar/pdfmult/raw/master/example1.png" alt="" width="152" height="59">
|
26
|
+
<img src="https://github.com/stomar/pdfmult/raw/master/example1.png" alt="" width="152" height="59">
|
27
27
|
|
28
28
|
* `pdfmult -n 4 sample.pdf`
|
29
29
|
|
30
30
|
writes 4 copies of `sample.pdf` to `sample_4.pdf`
|
31
31
|
|
32
|
-
<img src="/stomar/pdfmult/raw/master/example2.png" alt="" width="234" height="59">
|
32
|
+
<img src="https://github.com/stomar/pdfmult/raw/master/example2.png" alt="" width="234" height="59">
|
33
33
|
|
34
34
|
* `pdfmult sample.pdf -o outfile.pdf`
|
35
35
|
|
data/Rakefile
CHANGED
@@ -34,7 +34,7 @@ end
|
|
34
34
|
desc 'Install binary and man page'
|
35
35
|
task :install => [BINARY, MANPAGE] do
|
36
36
|
mkdir_p BINDIR
|
37
|
-
install(BINARY, BINDIR
|
37
|
+
install(BINARY, "#{BINDIR}/#{BINARYNAME}")
|
38
38
|
mkdir_p MANDIR
|
39
39
|
install(MANPAGE, MANDIR, :mode => 0644)
|
40
40
|
end
|
data/lib/pdfmult.rb
CHANGED
@@ -27,13 +27,15 @@
|
|
27
27
|
#
|
28
28
|
# -n, --number:: Number of copies to put on one page: 2 (default), 4, 8, 9, 16.
|
29
29
|
#
|
30
|
+
# -f, --force:: Do not prompt before overwriting.
|
31
|
+
#
|
32
|
+
# -l, --latex:: Create a LaTeX file instead of a PDF file (default: infile_NUMBER.tex).
|
33
|
+
#
|
30
34
|
# -o, --output:: Output file (default: infile_NUMBER.pdf).
|
31
35
|
#
|
32
36
|
# -p, --pages:: Number of pages to convert.
|
33
37
|
# If given, +pdfmult+ does not try to obtain the page count from the source PDF.
|
34
38
|
#
|
35
|
-
# -l, --latex:: Create a LaTeX file instead of a PDF file (default: infile_NUMBER.tex).
|
36
|
-
#
|
37
39
|
# -h, --help:: Prints a brief help message and exits.
|
38
40
|
#
|
39
41
|
# -v, --version:: Prints a brief version information and exits.
|
@@ -61,8 +63,10 @@ require 'fileutils'
|
|
61
63
|
module Pdfmult
|
62
64
|
|
63
65
|
PROGNAME = 'pdfmult'
|
64
|
-
VERSION = '1.
|
65
|
-
DATE = '2012-
|
66
|
+
VERSION = '1.2.0'
|
67
|
+
DATE = '2012-04-15'
|
68
|
+
HOMEPAGE = 'https://github.com/stomar/pdfmult/'
|
69
|
+
|
66
70
|
COPYRIGHT = "Copyright (C) 2011-2012 Marcus Stollsteimer.\n" +
|
67
71
|
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n" +
|
68
72
|
"This is free software: you are free to change and redistribute it.\n" +
|
@@ -85,9 +89,10 @@ module Pdfmult
|
|
85
89
|
def self.parse!(argv)
|
86
90
|
|
87
91
|
options = {
|
88
|
-
:
|
92
|
+
:force => false,
|
89
93
|
:infile => nil,
|
90
94
|
:latex => false,
|
95
|
+
:number => 2,
|
91
96
|
:outfile => nil,
|
92
97
|
:pages => nil
|
93
98
|
}
|
@@ -117,7 +122,7 @@ module Pdfmult
|
|
117
122
|
# exit successfully (GNU Coding Standards)
|
118
123
|
opt.on_tail('-h', '--help', 'Prints a brief help message and exits.') do
|
119
124
|
puts opt_parser
|
120
|
-
puts "\nReport bugs on the
|
125
|
+
puts "\nReport bugs on the #{PROGNAME} home page: <#{HOMEPAGE}>"
|
121
126
|
exit
|
122
127
|
end
|
123
128
|
|
@@ -133,6 +138,14 @@ module Pdfmult
|
|
133
138
|
options[:number] = n
|
134
139
|
end
|
135
140
|
|
141
|
+
opt.on('-f', '--force', 'Do not prompt before overwriting.') do
|
142
|
+
options[:force] = true
|
143
|
+
end
|
144
|
+
|
145
|
+
opt.on('-l', '--latex', 'Create a LaTeX file instead of a PDF file (default: file_2.tex).') do
|
146
|
+
options[:latex] = true
|
147
|
+
end
|
148
|
+
|
136
149
|
opt.on('-o', '--output FILE', String,
|
137
150
|
'Output file (default: file_2.pdf).') do |f|
|
138
151
|
options[:outfile] = f
|
@@ -145,10 +158,6 @@ module Pdfmult
|
|
145
158
|
options[:pages] = p
|
146
159
|
end
|
147
160
|
|
148
|
-
opt.on('-l', '--latex', 'Create a LaTeX file instead of a PDF file (default: file_2.tex).') do
|
149
|
-
options[:latex] = true
|
150
|
-
end
|
151
|
-
|
152
161
|
opt.separator ''
|
153
162
|
end
|
154
163
|
opt_parser.parse!(argv)
|
@@ -160,7 +169,8 @@ module Pdfmult
|
|
160
169
|
|
161
170
|
# set output file unless set by option
|
162
171
|
ext = options[:latex] ? 'tex' : 'pdf'
|
163
|
-
|
172
|
+
infile_without_ext = options[:infile].gsub(/(.pdf)\Z/, '')
|
173
|
+
options[:outfile] ||= "#{infile_without_ext}_#{options[:number].to_s}.#{ext}"
|
164
174
|
|
165
175
|
options
|
166
176
|
end
|
@@ -207,12 +217,12 @@ module Pdfmult
|
|
207
217
|
|
208
218
|
case @number
|
209
219
|
when 2
|
210
|
-
class_options
|
220
|
+
class_options << ',landscape'
|
211
221
|
geometry = '2x1'
|
212
222
|
when 4
|
213
223
|
geometry = '2x2'
|
214
224
|
when 8
|
215
|
-
class_options
|
225
|
+
class_options << ',landscape'
|
216
226
|
geometry = '4x2'
|
217
227
|
when 9
|
218
228
|
geometry = '3x3'
|
@@ -266,7 +276,7 @@ module Pdfmult
|
|
266
276
|
|
267
277
|
# Returns true if default +pdfinfo+ system tool is available (for unit tests).
|
268
278
|
def self.infocmd_available? # :nodoc:
|
269
|
-
Application.command_available?(PDFINFOCMD
|
279
|
+
Application.command_available?("#{PDFINFOCMD} -v")
|
270
280
|
end
|
271
281
|
end
|
272
282
|
|
@@ -302,7 +312,7 @@ module Pdfmult
|
|
302
312
|
usage_fail("specified input not of the type `file'") unless File.ftype(infile) == 'file'
|
303
313
|
|
304
314
|
# test for existing output file
|
305
|
-
if File.exist?(outfile)
|
315
|
+
if File.exist?(outfile) and !options[:force]
|
306
316
|
overwrite_ok = ask("File `#{outfile}' already exists. Overwrite?")
|
307
317
|
exit unless overwrite_ok
|
308
318
|
end
|
@@ -316,9 +326,7 @@ module Pdfmult
|
|
316
326
|
document = LaTeXDocument.new(infile, options[:number], pages)
|
317
327
|
|
318
328
|
if options[:latex]
|
319
|
-
open(outfile, 'w')
|
320
|
-
f.write(document.to_s)
|
321
|
-
end
|
329
|
+
open(outfile, 'w') {|f| f.write(document.to_s) }
|
322
330
|
else
|
323
331
|
Dir.mktmpdir('pdfmult') do |dir|
|
324
332
|
open("#{dir}/pdfmult.tex", 'w') do |f|
|
@@ -340,7 +348,7 @@ module Pdfmult
|
|
340
348
|
# Returns +true+ if the answer is yes.
|
341
349
|
def self.ask(question) # :nodoc:
|
342
350
|
while true
|
343
|
-
print question
|
351
|
+
print "#{question} [y/n] "
|
344
352
|
reply = $stdin.gets.chomp.downcase # $stdin: avoids gets / ARGV problem
|
345
353
|
return true if reply == 'y'
|
346
354
|
return false if reply == 'n'
|
@@ -365,7 +373,7 @@ module Pdfmult
|
|
365
373
|
#
|
366
374
|
# +command+ - command to test
|
367
375
|
def self.command_available?(command) # :nodoc:
|
368
|
-
!!system(command
|
376
|
+
!!system("#{command} >/dev/null 2>&1")
|
369
377
|
end
|
370
378
|
end
|
371
379
|
|
data/man/pdfmult.1
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.4.
|
2
|
-
.TH PDFMULT "1" "
|
2
|
+
.TH PDFMULT "1" "April 2012" "pdfmult 1.2.0" "User Commands"
|
3
3
|
.SH NAME
|
4
4
|
pdfmult \- puts multiple copies of a PDF page on one page
|
5
5
|
.SH SYNOPSIS
|
@@ -25,6 +25,12 @@ and a LaTeX file is created instead of a PDF.
|
|
25
25
|
\fB\-n\fR, \fB\-\-number\fR NUMBER
|
26
26
|
Number of copies to put on one page: 2 (default), 4, 8, 9, 16.
|
27
27
|
.TP
|
28
|
+
\fB\-f\fR, \fB\-\-force\fR
|
29
|
+
Do not prompt before overwriting.
|
30
|
+
.TP
|
31
|
+
\fB\-l\fR, \fB\-\-latex\fR
|
32
|
+
Create a LaTeX file instead of a PDF file (default: file_2.tex).
|
33
|
+
.TP
|
28
34
|
\fB\-o\fR, \fB\-\-output\fR FILE
|
29
35
|
Output file (default: file_2.pdf).
|
30
36
|
.TP
|
@@ -32,9 +38,6 @@ Output file (default: file_2.pdf).
|
|
32
38
|
Number of pages to convert.
|
33
39
|
If given, pdfmult does not try to obtain the page count from the source PDF.
|
34
40
|
.TP
|
35
|
-
\fB\-l\fR, \fB\-\-latex\fR
|
36
|
-
Create a LaTeX file instead of a PDF file (default: file_2.tex).
|
37
|
-
.TP
|
38
41
|
\fB\-h\fR, \fB\-\-help\fR
|
39
42
|
Prints a brief help message and exits.
|
40
43
|
.TP
|
data/pdfmult.gemspec
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'lib/pdfmult'
|
2
2
|
|
3
|
-
version
|
4
|
-
date
|
3
|
+
version = Pdfmult::VERSION
|
4
|
+
date = Pdfmult::DATE
|
5
|
+
homepage = Pdfmult::HOMEPAGE
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
8
|
s.name = 'pdfmult'
|
@@ -16,7 +17,7 @@ Gem::Specification.new do |s|
|
|
16
17
|
|
17
18
|
s.authors = ['Marcus Stollsteimer']
|
18
19
|
s.email = 'sto.mar@web.de'
|
19
|
-
s.homepage =
|
20
|
+
s.homepage = homepage
|
20
21
|
|
21
22
|
s.license = 'GPL-3'
|
22
23
|
|
@@ -29,12 +30,12 @@ Gem::Specification.new do |s|
|
|
29
30
|
|
30
31
|
s.rdoc_options = ['--charset=UTF-8']
|
31
32
|
|
32
|
-
s.files = %w
|
33
|
+
s.files = %w{
|
33
34
|
README.md
|
34
35
|
Rakefile
|
35
36
|
pdfmult.gemspec
|
36
37
|
pdfmult.h2m
|
37
|
-
|
38
|
+
} +
|
38
39
|
Dir.glob('example*.*') +
|
39
40
|
Dir.glob('{bin,lib,man,test}/**/*')
|
40
41
|
|
data/test/test_optionparser.rb
CHANGED
@@ -13,11 +13,12 @@ describe Pdfmult::Optionparser do
|
|
13
13
|
it 'should return the correct default values' do
|
14
14
|
options = Pdfmult::Optionparser.parse!(['sample.pdf'])
|
15
15
|
expected = {
|
16
|
-
:
|
16
|
+
:force => false,
|
17
|
+
:infile => 'sample.pdf',
|
18
|
+
:latex => false,
|
19
|
+
:number => 2,
|
17
20
|
:outfile => 'sample_2.pdf',
|
18
|
-
:
|
19
|
-
:pages => nil,
|
20
|
-
:latex => false
|
21
|
+
:pages => nil
|
21
22
|
}
|
22
23
|
options.must_equal expected
|
23
24
|
end
|
@@ -42,6 +43,11 @@ describe Pdfmult::Optionparser do
|
|
42
43
|
options[:pages].must_equal 4
|
43
44
|
end
|
44
45
|
|
46
|
+
it 'should recognize the -f option' do
|
47
|
+
options = Pdfmult::Optionparser.parse!(['sample.pdf', '-f'])
|
48
|
+
options[:force].must_equal true
|
49
|
+
end
|
50
|
+
|
45
51
|
it 'should recognize the -l option and set the corresponding output filename' do
|
46
52
|
options = Pdfmult::Optionparser.parse!(['sample.pdf', '-l'])
|
47
53
|
options[:outfile].must_equal 'sample_2.tex'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pdfmult
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
version: 1.
|
10
|
+
version: 1.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Marcus Stollsteimer
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-04-15 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rake
|