lib/jasper-command-line/jasper.rb in jasper-command-line-0.2.4 vs lib/jasper-command-line/jasper.rb in jasper-command-line-0.3.1
- old
+ new
@@ -85,31 +85,37 @@
temp_file = Tempfile.new(['pdf-', '.pdf'])
file = temp_file.path
temp_file.close!
created_files = [file]
+ merge_pdf_command_line = "gs -q -dBATCH -dPDFSETTINGS=/prepress -dNOPAUSE -sDEVICE=pdfwrite -dEmbedAllFonts=true -sOutputFile=#{file}"
- pdf = PDF::Merger.new
-
# Export n copies and merge them into one file
options[:copies] ||= 1
+ copy_file = nil
+
(1..options[:copies]).each do |copy|
copy_temp_file = Tempfile.new(["pdf-#{copy}-", '.pdf'])
copy_file = copy_temp_file.path
copy_temp_file.close!
jasper_params.put JavaString.new('copy_number'), JavaString.new(copy.to_s)
jasper_print = JasperFillManager.fillReport(jasper_file, jasper_params)
File.open(copy_file, 'wb') { |f| f.write JasperExportManager._invoke('exportReportToPdf', 'Lnet.sf.jasperreports.engine.JasperPrint;', jasper_print) }
- pdf.add_file copy_file
+ merge_pdf_command_line << " #{copy_file}"
created_files << copy_file
end
- pdf.save_as file
+ if options[:copies] > 1
+ # Use GhostScript to create a single page
+ `#{merge_pdf_command_line}`
+ else
+ file = copy_file
+ end
# Digitally sign the file, if necessary
if sign_options
temp_signed_file = Tempfile.new(['signed-pdf-', '.pdf'])
signed_file = temp_signed_file.path
\ No newline at end of file