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 CHANGED
@@ -4,5 +4,4 @@ gemspec
4
4
 
5
5
  gem 'activesupport', '>= 3.2.0'
6
6
  gem 'rjb', '>= 1.4.0'
7
- gem 'builder', '>= 3.0.3'
8
- gem 'pdf-merger', '>= 0.3.1'
7
+ gem 'builder', '>= 3.0.3'
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
@@ -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
- pdf.add_file copy_file
107
+ merge_pdf_command_line << " #{copy_file}"
107
108
 
108
109
  created_files << copy_file
109
110
  end
110
111
 
111
- pdf.save_as file
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
@@ -1,3 +1,3 @@
1
1
  module JasperCommandLine
2
- VERSION = "0.2.4"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -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 AppleTvConverter logger.
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.2.4
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-05 00:00:00.000000000 Z
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