def order_results_print(request,pk): order = Orders.objects.get(pk=pk) input_file_header = settings.RESULT_REPORT_FILE_HEADER input_file_main = settings.RESULT_REPORT_FILE_MAIN input_file = settings.RESULT_REPORT_FILE ts = datetime.today().strftime('%Y%m%d%H%M%S') parameters ={'ORDER_ID': pk} output = settings.MEDIA_ROOT+'\\report\\'+str(order.number)+'_'+ts con = settings.JASPER_CONN jasper = JasperPy() jasper.compile(input_file_header) jasper.compile(input_file_main) jasper.process( input_file, output_file=output, format_list=["pdf"], parameters=parameters, db_connection=con, locale='en_US', resource= settings.RESULT_REPORT_DIR ) base_url = request.build_absolute_uri('/')[:-1].strip("/") url_pdf = base_url+'/media/report/'+str(order.number)+'_'+ts+'.pdf' # save report URL oe, _created = models.OrderExtended.objects.get_or_create(order_id=pk) oe.result_pdf_url = url_pdf oe.save() # set validation printed if request.user.is_authenticated(): order_res = models.OrderResults.objects.filter(order_id=pk,validation_status=3).update(validation_status=4,print_user=str(request.user),print_date=datetime.now()) template = 'middleware/result_pdf_preview.html' context = {'order':order,'url_pdf' : url_pdf} return render(request,template,context)
def do_print_pdf(request): post_id = request.matchdict['id'] input_file = c_report_paths['jasper'] + '/hello-world.jrxml' jasper = JasperPy() jasper.compile(input_file) jasper.process(input_file, c_report_paths['pdf'], format_list=['pdf']) response = FileResponse(c_report_paths['pdf'] + '/hello-world.pdf', request=request) response.headers['Content-Disposition'] = 'inline; filename={}'.format( c_report_paths['pdf'] + '/hello-world.pdf') response.headers['Content-Type'] = 'application/pdf' # delete generated pdf file if os.path.exists(c_report_paths['pdf'] + '/hello-world.pdf'): os.remove(c_report_paths['pdf'] + '/hello-world.pdf') return response
def compiling(): template = os.path.dirname(os.path.abspath(__file__)) + \ '/jasper/crisis_report_template.jrxml' jasper = JasperPy() jasper.compile(template)
class TestJasperPy(TestCase): def setUp(self): self.input_file = 'examples/hello_world.jrxml' self.jasper = JasperPy() def test_compile(self): self.assertRaises(NameError, self.jasper.compile, False) self.assertEqual(self.jasper.compile(self.input_file), 0) def test_process(self): self.assertRaises(NameError, self.jasper.process, False) # test invalid format input. Must be list ['pdf'] kwargs = { 'input_file': self.input_file, 'format_list': 'pdf' } self.assertRaises(NameError, self.jasper.process, **kwargs) # test invalid input format kwargs = { 'input_file': self.input_file, 'format_list': 5 } self.assertRaises(NameError, self.jasper.process, **kwargs) # test invalid report format kwargs = { 'input_file': self.input_file, 'format_list': ['mp3'] } self.assertRaises(NameError, self.jasper.process, **kwargs) # test self.assertEqual( self.jasper.process(self.input_file, format_list=['pdf']), 0) def test_list_parameters(self): self.input_file = 'examples/hello_world_params.jrxml' self.assertRaises(NameError, self.jasper.list_parameters, False) self.assertEqual(self.jasper.list_parameters(self.input_file), { 'myString': ['java.lang.String', ''], 'myInt': ['java.lang.Integer', ''], 'myDate': ['java.util.Date', ''], 'myImage': ['java.awt.Image', 'This is the description' ' of parameter myImage'] }) def test_execute(self): self.assertEqual(self.jasper.execute(), 0) self.jasper.path_executable = '' self.assertRaises(NameError, self.jasper.execute, False) def test_subreports(self): input_file_header = 'examples/subreports/header.jrxml' input_file_details = 'examples/subreports/details.jrxml' input_file_main = 'examples/subreports/main.jrxml' self.input_file = 'examples/subreports/main.jasper' data_file = 'examples/subreports/contacts.xml' self.jasper.compile(input_file_header) self.jasper.compile(input_file_details) self.jasper.compile(input_file_main) self.assertEqual( self.jasper.process( self.input_file, format_list=["pdf"], parameters={}, db_connection={ 'data_file': data_file, 'driver': 'xml', 'xml_xpath': '"/"', }, locale='pt_BR', # LOCALE Ex.:(en_US, de_GE) resource='examples/subreports/' ), 0) def test_jsonql(self): self.input_file = 'examples/jsonql.jrxml' data_file = 'examples/contacts.json' self.assertEqual( self.jasper.process( self.input_file, format_list=["pdf"], parameters={}, db_connection={ 'data_file': data_file, 'driver': 'jsonql', 'jsonql_query': 'contacts.person', }, locale='pt_BR', # LOCALE Ex.:(en_US, de_GE) ), 0) def test_csv(self): self.input_file = 'examples/csvMeta.jrxml' data_file = 'examples/csvExampleHeaders.csv' self.assertEqual( self.jasper.process( self.input_file, format_list=["pdf"], parameters={}, db_connection={ 'data_file': data_file, 'driver': 'csv', 'csv_charset': 'utf8', 'csv_field_del': '|', 'csv_record_del': '\r\n', #'csv_first_row': True, 'csv_columns': 'Name,Street,City,Phone' }, locale='en_US', # LOCALE Ex.:(en_US, de_GE) ), 0)
class TestJasperPy(TestCase): def setUp(self): self.input_file = 'examples/hello_world.jrxml' self.jasper = JasperPy() def test_compile(self): self.assertRaises(NameError, self.jasper.compile, False) self.assertEqual(self.jasper.compile(self.input_file), 0) def test_process(self): self.assertRaises(NameError, self.jasper.process, False) # test invalid format input. Must be list ['pdf'] kwargs = {'input_file': self.input_file, 'format_list': 'pdf'} self.assertRaises(NameError, self.jasper.process, **kwargs) # test invalid input format kwargs = {'input_file': self.input_file, 'format_list': 5} self.assertRaises(NameError, self.jasper.process, **kwargs) # test invalid report format kwargs = {'input_file': self.input_file, 'format_list': ['mp3']} self.assertRaises(NameError, self.jasper.process, **kwargs) # test self.assertEqual( self.jasper.process(self.input_file, format_list=['pdf', 'odt', 'xls']), 0) def test_list_parameters(self): self.input_file = 'examples/hello_world_params.jrxml' self.assertRaises(NameError, self.jasper.list_parameters, False) self.assertEqual( self.jasper.list_parameters(self.input_file), { 'myString': ['java.lang.String', ''], 'myInt': ['java.lang.Integer', ''], 'myDate': ['java.util.Date', ''], 'myImage': [ 'java.awt.Image', 'This is the description' ' of parameter myImage' ] }) def test_execute(self): self.assertEqual(self.jasper.execute(), 0) self.jasper.path_executable = '' self.assertRaises(NameError, self.jasper.execute, False) def test_subreports(self): input_file_header = 'examples/subreports/header.jrxml' input_file_details = 'examples/subreports/details.jrxml' input_file_main = 'examples/subreports/main.jrxml' self.input_file = 'examples/subreports/main.jasper' data_file = 'examples/subreports/contacts.xml' self.jasper.compile(input_file_header) self.jasper.compile(input_file_details) self.jasper.compile(input_file_main) self.assertEqual( self.jasper.process( self.input_file, format_list=["pdf"], parameters={}, db_connection={ 'data_file': data_file, 'driver': 'xml', 'xml_xpath': '"/"', }, locale='pt_BR', # LOCALE Ex.:(en_US, de_GE) resource='examples/subreports/'), 0)
def compiling(): input_file = os.path.dirname( os.path.abspath(__file__)) + '/prueba_Template.jrxml' jasper = JasperPy() jasper.compile(input_file)
class TestJasperPy(TestCase): EXAMPLES_DIR = os.path.join( os.path.dirname(os.path.abspath(os.path.dirname(__file__))), 'examples') @ignore_warnings def setUp(self): self.input_file = os.path.join(self.EXAMPLES_DIR, 'hello_world.jrxml') self.jasper = JasperPy() @ignore_warnings def test_compile(self): self.assertRaises(NameError, self.jasper.compile, False) self.assertEqual(self.jasper.compile(self.input_file), 0) @ignore_warnings def test_process(self): self.assertRaises(NameError, self.jasper.process, False) # test invalid format input. Must be list ['pdf'] kwargs = {'input_file': self.input_file, 'format_list': 'pdf'} self.assertRaises(NameError, self.jasper.process, **kwargs) # test invalid input format kwargs = {'input_file': self.input_file, 'format_list': 5} self.assertRaises(NameError, self.jasper.process, **kwargs) # test invalid report format kwargs = {'input_file': self.input_file, 'format_list': ['mp3']} self.assertRaises(NameError, self.jasper.process, **kwargs) # test kwargs = {'input_file': self.input_file, 'format_list': ['pdf']} self.assertEqual(self.jasper.process(**kwargs), 0) @ignore_warnings def test_subreports(self): input_file_header = os.path.join(self.EXAMPLES_DIR, 'subreports', 'header.jrxml') input_file_details = os.path.join(self.EXAMPLES_DIR, 'subreports', 'details.jrxml') input_file_main = os.path.join(self.EXAMPLES_DIR, 'subreports', 'main.jrxml') self.input_file = os.path.join(self.EXAMPLES_DIR, 'subreports', 'main.jasper') data_file = os.path.join(self.EXAMPLES_DIR, 'subreports', 'contacts.xml') resources = os.path.join(self.EXAMPLES_DIR, 'subreports') + os.sep self.jasper.compile(input_file_header) self.jasper.compile(input_file_details) self.jasper.compile(input_file_main) self.assertEqual( self.jasper.process( self.input_file, format_list=["pdf"], parameters={}, db_connection={ 'data_file': data_file, 'driver': 'xml', 'xml_xpath': '/', }, locale='pt_BR', # LOCALE Ex.:(en_US, de_GE) resource=resources), 0) @ignore_warnings def test_jsonql(self): self.input_file = os.path.join(self.EXAMPLES_DIR, 'jsonql.jrxml') data_file = os.path.join(self.EXAMPLES_DIR, 'contacts.json') self.assertEqual( self.jasper.process( self.input_file, format_list=["pdf"], parameters={}, db_connection={ 'data_file': data_file, 'driver': 'jsonql', 'jsonql_query': 'contacts.person', 'json_locale': 'es_ES' }, locale='pt_BR', # LOCALE Ex.:(en_US, de_GE) ), 0) @ignore_warnings def test_json_process(self): self.input_file = os.path.join(self.EXAMPLES_DIR, 'jsonql.jrxml') data_file = os.path.join(self.EXAMPLES_DIR, 'contacts.json') self.assertEqual( self.jasper.process_json( self.input_file, format_list=["pdf"], parameters={}, connection={ 'data_file': data_file, 'driver': 'jsonql', 'jsonql_query': 'contacts.person', 'json_locale': 'es_ES', 'json_date_pattern': 'yyyy-MM-dd', 'json_number_pattern': '#,##0.##"' }, locale='pt_BR', # LOCALE Ex.:(en_US, de_GE) ), 0) @ignore_warnings def test_json_url(self): self.input_file = os.path.join(self.EXAMPLES_DIR, 'jsonql.jrxml') self.assertEqual( self.jasper.process_json( self.input_file, format_list=["pdf"], parameters={}, connection={ 'url_file': 'https://acesseonline-arquivos-publicos.s3.us-east-2.amazonaws.com/contacts.json', 'url_method': 'GET', # POST, PUT # 'url_params': {'param1': 'test'}, # 'url_data': {'data_field': 'abc123'}, # 'url_header': {'Authorization': 'Bearer xxxxxxxxxxxxxxxxxx'}, 'driver': 'jsonql', 'jsonql_query': 'contacts.person', 'json_locale': 'es_ES', 'json_date_pattern': 'yyyy-MM-dd', 'json_number_pattern': '#,##0.##"' }, locale='pt_BR', # LOCALE Ex.:(en_US, de_GE) ), 0) @ignore_warnings def test_csv(self): self.input_file = os.path.join(self.EXAMPLES_DIR, 'csvMeta.jrxml') data_file = os.path.join(self.EXAMPLES_DIR, 'csvExampleHeaders.csv') self.assertEqual( self.jasper.process( self.input_file, format_list=["pdf"], parameters={}, db_connection={ 'data_file': data_file, 'driver': 'csv', 'csv_charset': 'utf8', 'csv_field_del': '|', 'csv_record_del': '\r\n', 'csv_columns': 'Name,Street,City,Phone' }, locale='en_US', # LOCALE Ex.:(en_US, de_GE) ), 0)