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 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