jasper-command-line 0.2.4 → 0.3.1
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/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
|