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