jasper-command-line 0.2.4 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -2
- data/README.md +2 -1
- data/jasper-command-line.gemspec +0 -1
- data/lib/jasper-command-line/command_line.rb +2 -0
- data/lib/jasper-command-line/jasper.rb +10 -4
- data/lib/jasper-command-line/version.rb +1 -1
- data/lib/jasper-command-line.rb +5 -2
- metadata +2 -18
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -12,10 +12,10 @@ It also embeds the .jar files needed to digitally sign the PDF, if necessary. Th
|
|
12
12
|
## Dependencies
|
13
13
|
|
14
14
|
* You need a Java Virtual Machine installed and set up in order to use this gem.
|
15
|
+
* [Ghostscript](http://www.ghostscript.com) to merge PDFs into a single document
|
15
16
|
* [rjb](http://rjb.rubyforge.org/) >= 1.4.0
|
16
17
|
* [builder](https://rubygems.org/gems/builder) >= 3.0.3
|
17
18
|
* [activesupport](https://rubygems.org/gems/activesupport) >= 3.2.0
|
18
|
-
* [pdf-merger](https://github.com/paulschreiber/pdf-merger) >= 0.3.1
|
19
19
|
|
20
20
|
## Install
|
21
21
|
|
@@ -52,6 +52,7 @@ Digital signature options:
|
|
52
52
|
--sign-location location The location of the signature
|
53
53
|
--sign-reason reason The reason for signing the PDF
|
54
54
|
```
|
55
|
+
|
55
56
|
## LICENSE
|
56
57
|
|
57
58
|
Copyright (C) 2012 Pedro Rodrigues
|
data/jasper-command-line.gemspec
CHANGED
@@ -16,7 +16,6 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.add_dependency('rjb', '>= 1.4.0')
|
17
17
|
s.add_dependency('builder', '>= 3.0.3')
|
18
18
|
s.add_dependency('activesupport', '>= 3.2.0')
|
19
|
-
s.add_dependency('pdf-merger', '>= 0.3.1')
|
20
19
|
s.add_development_dependency("rspec", "~> 2.7")
|
21
20
|
s.add_development_dependency("rake", "~> 0.9.2")
|
22
21
|
|
@@ -91,6 +91,8 @@ module JasperCommandLine
|
|
91
91
|
i = get_option_data(arguments, i) do |argument_data|
|
92
92
|
raise ArgumentError.new("Invalid number of copies: #{argument_data}") unless argument_data =~ /^[1-9][0-9]*$/
|
93
93
|
data[:copies] = argument_data.to_i
|
94
|
+
|
95
|
+
raise ArgumentError.new("Ghostscript isn't available. Merging is not possible") if data[:copies] > 1 && !JasperCommandLine.ghostscript_available?
|
94
96
|
end
|
95
97
|
|
96
98
|
when 'sign-key-file'
|
@@ -87,12 +87,13 @@ module JasperCommandLine
|
|
87
87
|
temp_file.close!
|
88
88
|
|
89
89
|
created_files = [file]
|
90
|
-
|
91
|
-
pdf = PDF::Merger.new
|
90
|
+
merge_pdf_command_line = "gs -q -dBATCH -dPDFSETTINGS=/prepress -dNOPAUSE -sDEVICE=pdfwrite -dEmbedAllFonts=true -sOutputFile=#{file}"
|
92
91
|
|
93
92
|
# Export n copies and merge them into one file
|
94
93
|
options[:copies] ||= 1
|
95
94
|
|
95
|
+
copy_file = nil
|
96
|
+
|
96
97
|
(1..options[:copies]).each do |copy|
|
97
98
|
copy_temp_file = Tempfile.new(["pdf-#{copy}-", '.pdf'])
|
98
99
|
copy_file = copy_temp_file.path
|
@@ -103,12 +104,17 @@ module JasperCommandLine
|
|
103
104
|
|
104
105
|
File.open(copy_file, 'wb') { |f| f.write JasperExportManager._invoke('exportReportToPdf', 'Lnet.sf.jasperreports.engine.JasperPrint;', jasper_print) }
|
105
106
|
|
106
|
-
|
107
|
+
merge_pdf_command_line << " #{copy_file}"
|
107
108
|
|
108
109
|
created_files << copy_file
|
109
110
|
end
|
110
111
|
|
111
|
-
|
112
|
+
if options[:copies] > 1
|
113
|
+
# Use GhostScript to create a single page
|
114
|
+
`#{merge_pdf_command_line}`
|
115
|
+
else
|
116
|
+
file = copy_file
|
117
|
+
end
|
112
118
|
|
113
119
|
# Digitally sign the file, if necessary
|
114
120
|
if sign_options
|
data/lib/jasper-command-line.rb
CHANGED
@@ -7,14 +7,13 @@ require 'tempfile'
|
|
7
7
|
require 'jasper-command-line/version'
|
8
8
|
require 'jasper-command-line/command_line'
|
9
9
|
require 'jasper-command-line/jasper'
|
10
|
-
require 'pdf/merger'
|
11
10
|
|
12
11
|
module JasperCommandLine
|
13
12
|
def self.logger=(log)
|
14
13
|
@logger = log
|
15
14
|
end
|
16
15
|
|
17
|
-
# Get
|
16
|
+
# Get jasper-command-line logger.
|
18
17
|
#
|
19
18
|
# @return [Logger]
|
20
19
|
def self.logger
|
@@ -23,4 +22,8 @@ module JasperCommandLine
|
|
23
22
|
logger.level = Logger::INFO
|
24
23
|
@logger = logger
|
25
24
|
end
|
25
|
+
|
26
|
+
def self.ghostscript_available?
|
27
|
+
!`which gs`.empty?
|
28
|
+
end
|
26
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jasper-command-line
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rjb
|
@@ -59,22 +59,6 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 3.2.0
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: pdf-merger
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 0.3.1
|
70
|
-
type: :runtime
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ! '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 0.3.1
|
78
62
|
- !ruby/object:Gem::Dependency
|
79
63
|
name: rspec
|
80
64
|
requirement: !ruby/object:Gem::Requirement
|